题目要求:判断两个树是否相同
思路:判断两个树是否相同,要判断五种情况,①p为空时q不为空 ,②p不为空时q为空,③p == null && q ==null,④ p.val == q.val ,⑤p.val != q.val 。
当val值相同时,开始递归,否则返回false
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p != null && q == null || p == null && q != null){
return false;
}
if(p == null && q == null){//说明同时为空 走完了返回上去
return true;
}
//pq != null
if(p.val != q.val){//只能确定不相等时一定是false因为可能还没有遍历完
return false;
}
//p!=null && q!=null&&q.val==p.val的时候,递归
//只有val相同时才会一直走,走到空返回true。
return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
}
}
运行结果👇