每日一题力扣652 寻找重复的子树

 

给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。

两棵树重复是指它们具有相同的结构以及相同的结点值。

 

class Solution:
    def findDuplicateSubtrees(self, root: TreeNode) -> List[TreeNode]:
        count=collections.Counter()
        ans=[]
        def coll(node):
            if not node:
                return '#'
            serial="{},{},{}".format(node.val,coll(node.left),coll(node.right))#针对每个节点都有自己的字典
            count[serial]+=1#统计这个字典出现的次数
            if count[serial]==2:
                ans.append(node)
            return serial#因为还要参与下一次的计算
        coll(root)
        return ans

 

posted @ 2021-04-14 16:35  小千北同学超爱写代码  阅读(63)  评论(0编辑  收藏  举报