Skip to content

Commit e3ff021

Browse files
committed
Runtime: 106 ms (Top 94.04%) | Memory: 24.40 MB (Top 92.45%)
1 parent 72377f2 commit e3ff021

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
1+
// Runtime: 106 ms (Top 94.04%) | Memory: 24.40 MB (Top 92.45%)
2+
13
class Solution:
2-
def rangeSumBST(self, root: Optional[TreeNode], low: int, high: int) -> int:
3-
4-
res = 0
4+
def rangeSumBST(self, root, L, R):
5+
if not root:
6+
return 0
57

6-
def dfs(node):
7-
nonlocal res
8-
9-
if not node:
10-
return
11-
12-
if node.val >= low and node.val <= high:
13-
14-
res += node.val
15-
16-
dfs(node.left)
17-
dfs(node.right)
18-
19-
dfs(root)
20-
21-
return res
8+
if L <= root.val <= R:
9+
return root.val + self.rangeSumBST(root.left, L, R) + self.rangeSumBST(root.right, L, R)
10+
elif root.val < L:
11+
return self.rangeSumBST(root.right, L, R)
12+
else:
13+
return self.rangeSumBST(root.left, L, R)
14+
15+
16+

0 commit comments

Comments
 (0)