题解 | #树的子结构#

树的子结构

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;
        }
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务