题目传送:https://leetcode.cn/problems/same-tree/submissions/
注意: 这道题不能用 “由二叉树的中序和前序遍历序列可以唯一确定一棵二叉树” 这个理论
比如下面的反例,它们的前序和中序都是1,1
运行效率:
代码如下: 递归解法
public boolean isSameTree(TreeNode p, TreeNode q) {
// 处理边界情况
// 1、如果两个都是null,那肯定是返回true
if (p == null && q == null) {
return true;
}
// 2、如果一个为空,另一个不为空,那肯定不是同一颗二叉树
if (p == null) {
return false;
}
if (q == null) {
return false;
}
//验证根节点的值是否相同
boolean b = p.val == q.val;
//验证左子树的值是否相同
boolean sameTree = isSameTree(p.left, q.left);
//验证右子树的值是否相同
boolean sameTree1 = isSameTree(p.right, q.right);
return b && sameTree && sameTree1;
}