0
点赞
收藏
分享

微信扫一扫

[算法导论] 另一颗树的子树

星巢文化 2022-01-20 阅读 70

0. 题目

检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。

 1. 深搜dfs 暴力匹配  o(|t|*|s|) o(max(dt,ds))

寻找root子树中是否有subRoot

ishave:以root为根的子树 与 subRoot是否完全相等。

isSubtree:寻找树中是否有子树与subRoot完全相等 :root本身与subRoot是否相等,左/右子树中是否有子树与其相等。

class Solution(object):
    def ishave(self,root,subRoot): # 以root为根的子树 与 subRoot是否完全相等。
        # root与subRoot完全一样,return 1
        if not subRoot and not root:    return True #遍历完root和subroot所有的节点
        if not subRoot or not root or root.val != subRoot.val:    return False #不等
        return self.ishave(root.left,subRoot.left) and self.ishave(root.right,subRoot.right)
   
举报

相关推荐

0 条评论