Skip to content

Commit ac3446a

Browse files
author
He Hao
committed
update solution to 1008
1 parent 0a2a78b commit ac3446a

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

leetcode_python_solutions/1008.py

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,15 @@
55
# self.left = left
66
# self.right = right
77
class Solution:
8-
def minCameraCover(self, root: TreeNode) -> int:
9-
self.ans = 0
10-
covered = {None}
11-
self.dfs(root, covered, None)
12-
return self.ans
13-
14-
def dfs(self, root, covered, par):
15-
if not root:
16-
return
17-
self.dfs(root.left, covered, root)
18-
self.dfs(root.right, covered, root)
19-
if (root.left not in covered or root.right not in covered) or (not par and root not in covered):
20-
self.ans += 1
21-
covered.add(root.left)
22-
covered.add(root.right)
23-
covered.add(root)
24-
covered.add(par)
8+
def bstFromPreorder(self, preorder: List[int]) -> TreeNode:
9+
preorder.reverse()
10+
return self.construct_bst(preorder, float('-inf'), float('inf'))
11+
12+
def construct_bst(self, preorder, lower, upper):
13+
if not preorder:
14+
return None
15+
if lower < preorder[-1] < upper:
16+
root = TreeNode(preorder.pop())
17+
root.left = self.construct_bst(preorder, lower, root.val)
18+
root.right = self.construct_bst(preorder, root.val, upper)
19+
return root

0 commit comments

Comments
 (0)