题解 | #树的子结构#
树的子结构
https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88
public class Solution {
public boolean HasSubtree(TreeNode root1,TreeNode root2) {
if(root1==null||root2==null)return false;
return isSame(root1,root2)||HasSubtree(root1.left,root2)||HasSubtree(root1.right,root2);
}
public boolean isSame(TreeNode root1,TreeNode root2){
//必须先判断2,因为有可能同时null,先判断1会出错!!!!
if(root2==null)return true;//2先空,子树,true
if(root1==null)return false;//1先空,false
if(root1.val==root2.val){//本次递归的根结点相同,继续比较子树是否一致
return isSame(root1.left,root2.left)&&isSame(root1.right,root2.right);
}else{
return false;
}
}
}