1def trimBST(root, low, high):
2 def trim(node):
3 if not node:
4 return None
5
6 # Node value < low, trim to right subtree
7 if node.val < low:
8 return trim(node.right)
9
10 # Node value > high, trim to left subtree
11 if node.val > high:
12 return trim(node.left)
13
14 # Node in range, trim both subtrees
15 node.left = trim(node.left)
16 node.right = trim(node.right)
17 return node
18
19 return trim(root)| Variable | Value |
|---|---|
root | "Node(1)" |
low | 1 |
high | 2 |
| Depth | Function Call |
|---|---|
| 1 | trimBST(Node(1), 1, 2) |
1def trimBST(root, low, high):
2 def trim(node):
3 if not node:
4 return None
5
6 # Node value < low, trim to right subtree
7 if node.val < low:
8 return trim(node.right)
9
10 # Node value > high, trim to left subtree
11 if node.val > high:
12 return trim(node.left)
13
14 # Node in range, trim both subtrees
15 node.left = trim(node.left)
16 node.right = trim(node.right)
17 return node
18
19 return trim(root)