Skip to content

Commit e494d1e

Browse files
committed
upd
1 parent 83db1dd commit e494d1e

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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+
class Solution:
8+
def rightSideView(self, root: Optional[TreeNode]) -> List[int]:
9+
if not root:
10+
return []
11+
12+
res = defaultdict(list)
13+
q = deque()
14+
q.append([root, 0])
15+
16+
while q:
17+
node, level = q.popleft()
18+
if node:
19+
res[level].append(node.val)
20+
q.append([node.left, level+1])
21+
q.append([node.right, level+1])
22+
23+
keys = list(res.keys())
24+
keys.sort()
25+
answer = []
26+
for key in keys:
27+
answer.append(res[key][-1])
28+
29+
return answer

python/0210-course-schedule-ii.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,14 @@ def dfs(crs):
2626
if dfs(c) == False:
2727
return []
2828
return output
29+
30+
# visit to track course that all prereq have been solved
31+
# cycle is to introduced to detect the cycle
32+
# dfs
33+
# if already in cycle, return False
34+
# then temporarily add it to cycle
35+
# walk over each prereq,
36+
# if all pass, remove from cycle
37+
# if one prereq fails,
38+
# it will never be removed from cycle
39+
# nex time, dfs will fail immediately
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
class Solution:
9+
def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
10+
def dfs(node):
11+
if node.val > p.val and node.val > q.val:
12+
node = node.left
13+
elif node.val < p.val and node.val < q.val:
14+
node = node.right
15+
else:
16+
return node
17+
return dfs(node)
18+
19+
return dfs(root)

0 commit comments

Comments
 (0)