题解 | #树的子结构#

树的子结构

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

1、根节点相同,判断根树是否包含子结构。
2、根节点不同,判断左右子树中是否包含子结构。
注意:3种情况只要有一种返回true即可。

class Solution:
    def HasSubtree(self, pRoot1, pRoot2):
        if not pRoot1 or not pRoot2:
            return False
        return bool(pRoot1 and pRoot2) and (self.recur(pRoot1, pRoot2))or self.HasSubtree(pRoot1.left, pRoot2) or self.HasSubtree(pRoot1.right, pRoot2)

    def recur(self, root1, root2):  # 根节点相同了,判断是否子结构
        if not root2:    return True
        if not root1 or root1.val != root2.val:     return False
        return self.recur(root1.left, root2.left) and self.recur(root1.right, root2.right)
全部评论

相关推荐

2024-12-23 10:55
已编辑
大连理工大学 Java
牛客930504082号:华子综测不好好填会挂的,而且填的时候要偏向牛马选项
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务