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;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容