Skip to content

Commit c6483e3

Browse files
Time: 411 ms (5.01%) | Memory: 21.6 MB (92.64%) - LeetSync
1 parent cf6ed41 commit c6483e3

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
9+
def dfs(node, s):
10+
if not node:
11+
return None
12+
if node.val == s.val:
13+
return [s]
14+
res = dfs(node.left, s)
15+
if res:
16+
return res + [node]
17+
res = dfs(node.right, s)
18+
if res:
19+
return res + [node]
20+
return None
21+
22+
class Solution:
23+
def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
24+
res1 = dfs(root, p)
25+
res2 = dfs(root, q)
26+
27+
lwa = None
28+
29+
while res1 and res2 and res1[len(res1) - 1] == res2[len(res2) - 1]:
30+
lwa = res1.pop()
31+
res2.pop()
32+
33+
return lwa

0 commit comments

Comments
 (0)