100. 相同的树
递归,把问题转化为找不同
class Solution {
// 把思路转化为判断两个树是否存在不同的节点
public boolean isSameTree(TreeNode p, TreeNode q) {
// 如果两颗树都为空:1. 测试用例是两颗空树,2. 深度优先搜索到底了没有发现不同的元素
// 说明两颗树相同,返回 true
if (p == null && q == null) return true;
// 如果其中一颗树为空说明深度搜索过程中树结构不同
// 说明两颗树不相同,返回 false
if (p == null || q == null) return false;
// 如果两颗树的根节点值不同,返回 false
if (p.val != q.val) return false;
// 递归对比左子树与右子树
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
}