【发布时间】:2019-01-30 11:50:16
【问题描述】:
class Solution:
def findDuplicateSubtrees(self, root):
self.res = []
self.dic = {}
self.dfs(root)
return self.res
def dfs(self, root):
if not root: return '#'
tree = self.dfs(root.left) + self.dfs(root.right) + str(root.val)
if tree in self.dic and self.dic[tree] == 1:
self.res.append(root)
self.dic[tree] = self.dic.get(tree, 0) + 1
return tree
这是在给定二叉树的情况下获取所有重复子树的解决方案。
我不确定tree = self.dfs(root.left) + self.dfs(root.right) + str(root.val) 想要提供什么。
我知道它正在尝试进行后序遍历,但这部分实际上是如何工作的?
如果任何人都可以按照此代码进行操作,那就太好了。谢谢。
【问题讨论】:
标签: python recursion binary-tree