题目
思路
题目不难,判断两个二叉树是否相等,只需要判断三个条件:
- 两个根结点的val相等
- 两个左结点相等
- 两个右结点相等
而题目所给的函数isSameTree()的作用就是判断两个结点是否相等,所以自然而然的想到了用递归来判断这两个树的左右结点是否相同。
代码如下
public class Main {
public static void main(String[] args) {
TreeNode t1 = new TreeNode(1);
t1.left = new TreeNode(2);
// t1.right = new TreeNode(2);
TreeNode t2 = new TreeNode(1);
t2.left = new TreeNode(2);
// t2.right = new TreeNode(2);
System.out.println(new Main().isSameTree(t1, t2));
}
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null) return true;
else {
if (p == null || q == null) {
return false;
}
return (p.val == q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right));
}
}
}