Skip to content

Commit 6cd64cb

Browse files
committed
adding new algo
1 parent 1f30eef commit 6cd64cb

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from typing import List
2+
3+
class TreeNode:
4+
def __init__(self, x):
5+
self.val = x
6+
self.left = None
7+
self.right = None
8+
9+
class Solution:
10+
def distanceK(self, root: TreeNode, target: TreeNode, k: int) -> List[int]:
11+
def helper(node, parent):
12+
if not node:
13+
return
14+
node.parent = parent
15+
helper(node.left, node)
16+
helper(node.right, node)
17+
18+
helper(root, None)
19+
ans = []
20+
seen = set()
21+
22+
def trav(node, dist):
23+
if not node or node in seen or dist > k:
24+
return
25+
seen.add(node)
26+
if dist == k:
27+
ans.append(node.val)
28+
return
29+
if dist+1 <= k:
30+
trav(node.parent, dist+1)
31+
trav(node.left, dist+1)
32+
trav(node.right, dist+1)
33+
34+
trav(target, 0)
35+
return ans
36+

0 commit comments

Comments
 (0)