100. Same Tree
2016-06-09 22:04
411 查看
Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
如果两个树是一样的,那么前、中、后序遍历也是一样的。
就随便选一个中序遍历吧,每一步都递归判断node的值是否相等以及左右子树是否同样满足条件。
public boolean isSameTree(TreeNode p, TreeNode q)
{
return inorder(p, q);
}
private boolean inorder(TreeNode p,TreeNode q)
{
if(p==null&&q==null)
return true;
if(p==null&&q!=null)
return false;
if(p!=null&&q==null)
return false;
boolean judgeleft=inorder(p.left, q.left);
if(p.val!=q.val)
return false;
boolean judgeright=inorder(p.right, q.right);
return judgeleft&&judgeright;
}
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
如果两个树是一样的,那么前、中、后序遍历也是一样的。
就随便选一个中序遍历吧,每一步都递归判断node的值是否相等以及左右子树是否同样满足条件。
public boolean isSameTree(TreeNode p, TreeNode q)
{
return inorder(p, q);
}
private boolean inorder(TreeNode p,TreeNode q)
{
if(p==null&&q==null)
return true;
if(p==null&&q!=null)
return false;
if(p!=null&&q==null)
return false;
boolean judgeleft=inorder(p.left, q.left);
if(p.val!=q.val)
return false;
boolean judgeright=inorder(p.right, q.right);
return judgeleft&&judgeright;
}