题目
给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为他们是相同的。
示例
输入:p=[1,2,3] q=[1,2,3]
输出:true
如下图所示:
输入:p=[1,2] q=[1,null,2]
输出:false
如下图所示
解题思路
通过示例,可发现这是两棵树同时进行前序遍历,先判断根节点是否相同,如果相同,再判断左右子节点是否相同。在这个判断过程中,如果有一个不相同就返回false,如果全部相同才返回true。
代码实现
public boolean isSame(TreeNode p , TreeNode q){
if(p == null && q== null){
return true;
}
if(p == null || q == null){
return false;
}
if(p.val != q.val){
return false;
}
return isSame(p.left,q.left)&&isSame(p.right,q.right);
}