题目
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
解题方法
递归求解。很显然从两棵树的根节点开始比较,如果根节点不相同,那么两棵树一定是不同的。根节点相同的情况下,分别比较左子树和右子树,依次递归比较下去。
代码
在代码中进行详细注释
public boolean isSameTree(TreeNode p, TreeNode q) {
//比较根节点是否相同
if(p == null && q == null){
return true;
}
if(p != null && q == null){
return false;
}
if(p == null && q != null){
return false;
}
if(p.val != q.val){
return false;
}
//根节点相同的情况下,递归比较左子树和右子树
boolean l = isSameTree(p.left, q.left);
boolean r = isSameTree(p.right, q.right);
return l && r;
}