Same Tree leetcode java

题目

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.

 

题解

递归判断左右是否相等。

代码如下:

 1     public boolean isSameTree(TreeNode p, TreeNode q) {
 2         if(p==null&&q==null)
 3             return true;
 4         
 5         if(p==null&&q!=null)
 6             return false;
 7         
 8         if(p!=null&&q==null)
 9             return false;
10             
11         if(p.val!=q.val)
12             return false;
13         boolean isleftsame = isSameTree(p.left,q.left);
14         if(!isleftsame)
15             return false;
16             
17         boolean isrightsame = isSameTree(p.right,q.right);
18         if(!isrightsame)
19             return false;
20         
21         return true;
22         
23     }

 对上述代码更简洁的写法是:

1     public boolean isSameTree(TreeNode p, TreeNode q) {
2         if(p == null&&q == null)
3             return true;
4         if(p == null||q == null)
5             return false;
6         return (p.val == q.val) && isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
7     }

 

posted @ 2014-07-30 23:44  爱做饭的小莹子  阅读(2419)  评论(0编辑  收藏  举报