100. 相同的树

题目

100. 相同的树_第1张图片

思路

题目不难,判断两个二叉树是否相等,只需要判断三个条件:

  1. 两个根结点的val相等
  2. 两个左结点相等
  3. 两个右结点相等
    而题目所给的函数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));
        }
    }
}

你可能感兴趣的:(100. 相同的树)