您的位置:首页 > 其它

等价二叉树

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

样例

1             1
/ \           / \
2   2   and   2   2
/             /
4             4

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

就不是等价的。【递归判断】

/**

 * Definition of TreeNode:

 * public class TreeNode {

 *     public int val;

 *     public TreeNode left, right;

 *     public TreeNode(int val) {

 *         this.val = val;

 *         this.left = this.right = null;

 *     }

 * }

 */

public class Solution {

    /**

     * @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;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: