Find Duplicate Subtrees LeetCode solution in Python
1class Solution:2def findDuplicateSubtrees(3self, root: Optional[TreeNode]4) -> List[Optional[TreeNode]]:5ans = []6path_map = {}78def dfs(node):9if not node:10return "#"1112path = ",".join([str(node.val), dfs(node.left), dfs(node.right)])1314if path in path_map:15path_map[path] += 116if path_map[path] == 2:17ans.append(node)18else:19path_map[path] = 12021return path2223dfs(root)24return ans