LintCode - 等价二叉树(普通)

版权声明:本文为博主原创文章,未经博主允许不得转载。

难度:容易
要求:

检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。

样例

    1             1
   / \           / \
  2   2   and   2   2
 /             /
4             4
就是两棵等价的二叉树。

    1             1
   / \           / \
  2   3   and   2   3
 /               \
4                 4
就不是等价的。

思路

/**
     * @param a, b, the root of binary trees.
     * @return true if they are identical, or false.
     */
    public boolean isIdentical(TreeNode a, TreeNode b) {
        // Write your code here
        if (a == null && b == null) {
            return true;
        }

        if ((a == null && b != null) || (a != null && b == null) || a.val != b.val) {
            return false;
        }

        boolean left = isIdentical(a.left, b.left);
        boolean right = isIdentical(a.right, b.right);
        return left && right;
    }

你可能感兴趣的:(LintCode - 等价二叉树(普通))