Same Tree leetcode java

愛做飯的小瑩子發表於2014-07-30

題目

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     }

 

相關文章