这道题很是简单,但是最近一直在弄字符串链表,没弄树,结果思维定势,一开始想的是用stack或者QUEUE来深度或广度优先历遍
后来才回归到最基础的递归历遍,
先判是否为空,然后比较节点值,然后递归访问两个节点左child和右child。
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p==null || q==null){
if(p==null && q==null)return true;
else return false;
}
if(p.val!=q.val)return false;
return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
}
Update 2015/08/17:
public class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null){
return true;
} else if ((p != null && q != null) && (p.val == q.val)){
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
} else {
return false;
}
}
}