题解 | #ZJ17树的子结构#

树的子结构

http://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88

树结构,递归思想。

思考了一下,看完题解之后思路清晰地完整给出了解答。
但又遇到了空指针异常,一定要注意分析链表,树节点的最后null的情况。

    public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        if(root1==null||root2==null) return false;
        boolean result=false;
        if(root1.val==root2.val){
            result = HashSubtreeHelper(root1,root2);
        }
        if(!result) result = HasSubtree(root1.left,root2);
        if(!result) result = HasSubtree(root1.right,root2);
        return result;
    }

    public boolean HashSubtreeHelper(TreeNode  root1,TreeNode root2){
        if(root2==null) return true;  //这里的讨论很重要,子结构只是一部分。
        if(root1==null) return false;
        if(root1.val!=root2.val) return false;
        return HashSubtreeHelper(root1.left,root2.left)&&HashSubtreeHelper(root1.right,root2.right);
    }
全部评论

相关推荐

头像
05-12 09:14
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务