给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。
两棵树重复是指它们具有相同的结构以及相同的结点值。
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