File tree Expand file tree Collapse file tree 2 files changed +26
-0
lines changed
leetcode/652-find-duplicate-subtrees Expand file tree Collapse file tree 2 files changed +26
-0
lines changed File renamed without changes.
Original file line number Diff line number Diff line change 1+ # Definition for a binary tree node.
2+ # class TreeNode:
3+ # def __init__(self, val=0, left=None, right=None):
4+ # self.val = val
5+ # self.left = left
6+ # self.right = right
7+
8+
9+ class Solution :
10+ def findDuplicateSubtrees (self , root : TreeNode ) -> List [TreeNode ]:
11+ self .subtrees = set ()
12+ self .known_duplicates = set ()
13+ self .duplicate_nodes = set ()
14+
15+ def dfs (node ):
16+ if not node :
17+ return ""
18+ sig = f"{ node .val } ,{ dfs (node .left )} ,{ dfs (node .right )} "
19+ if sig not in self .subtrees :
20+ self .subtrees .add (sig )
21+ elif sig not in self .known_duplicates :
22+ self .known_duplicates .add (sig )
23+ self .duplicate_nodes .add (node )
24+ return sig
25+ dfs (root )
26+ return list (self .duplicate_nodes )
You can’t perform that action at this time.
0 commit comments