Skip to content

Commit 6e8b0fc

Browse files
committed
LeetCode: 669 solved (2 solutions)
1 parent c30495c commit 6e8b0fc

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed
Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
11
# https://leetcode.com/problems/trim-a-binary-search-tree/
22

33
class TreeNode:
4-
def __init__(self, x):
5-
self.val = x
6-
self.left = None
7-
self.right = None
4+
def __init__(self, val=0, left=None, right=None):
5+
self.val = val
6+
self.left = left
7+
self.right = right
88

99
class Solution:
10+
11+
def trimBST(self, root, low, high):
12+
return self.solution1(root, low, high)
1013

11-
# 5
12-
# 2 8
13-
# 1 3 6 9
14-
15-
def trimBST(self, root: TreeNode, L: int, R: int) -> TreeNode:
14+
def solution1(self, root, low, high):
1615

17-
def trim(node):
18-
if not node:
19-
return None
20-
if node.val > R:
21-
return trim(node.left)
22-
elif node.val < L:
23-
return trim(node.right)
24-
else:
25-
node.left = trim(node.left)
26-
node.right = trim(node.right)
27-
return node
16+
def solve(node):
17+
if not node: return None
2818

29-
return trim(root)
30-
19+
if node.val < low:
20+
return solve(node.right)
21+
if node.val > high:
22+
return solve(node.left)
23+
24+
node.left = solve(node.left)
25+
node.right = solve(node.right)
26+
return node
27+
28+
return solve(root)
29+

0 commit comments

Comments
 (0)