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.
A:
public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q == null){ return true; }else if(p!= null && q == null){ return false; }else if(p == null && q!= null){ return false; }else{ //both p and q are not null if (p.val != q.val ){ return false; }else{ boolean isLeftSame = isSameTree(p.left, q.left); boolean isRightSame = isSameTree(p.right,q.right); return (isLeftSame && isRightSame); } } } }
---------------------------第二遍 --------------------
思路一样,就是 没有用那么多的else if 语句。 因为,都是一个个的情况排除了。
public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q == null ) return true; if( ( p== null && q != null ) || (p != null && q==null)) return false; // now both are not null if( p.val != q.val) return false; // not both are the same value boolean left = isSameTree(p.left, q.left); boolean right = isSameTree(p.right, q.right); return left && right; } }
Mistakes:
Learned:
No comments:
Post a Comment