Skip to content

Commit ba3008c

Browse files
committed
fixed ret type error
1 parent e2df553 commit ba3008c

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

data_structures/binary_tree/segment_tree_node.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ def __init__(self, start: int, end: int) -> None:
33
# Initializes a segment tree node with start and end indices
44
self.start = start
55
self.end = end
6-
self.value: int | None = None
6+
self.value: int = None
77
self.left: Node | None = None
88
self.right: Node | None = None
99

@@ -23,7 +23,7 @@ def __init__(self, nums: list[int], mode: str = "max") -> None:
2323
# Build the tree from the input list
2424
self.root: Node | None = self.build(0, self.size - 1, nums)
2525

26-
def build(self, start: int, end: int, nums: list[int]) -> Node| None:
26+
def build(self, start: int, end: int, nums: list[int]) -> Node:
2727
"""
2828
Recursively builds the segment tree.
2929
:param start: Start index of the segment.
@@ -32,7 +32,7 @@ def build(self, start: int, end: int, nums: list[int]) -> Node| None:
3232
:return: Root node of the constructed subtree.
3333
"""
3434
if start > end:
35-
return None
35+
return
3636

3737
if start == end:
3838
# Leaf node
@@ -64,6 +64,9 @@ def max_in_range(self, start_index: int, end_index: int) -> int:
6464
if start_index > end_index or start_index < 0 or end_index >= self.size:
6565
raise Exception("Invalid index")
6666

67+
if self.root is None:
68+
raise ValueError("Tree not initialized")
69+
6770
return self.query(self.root, start_index, end_index, 0, self.size - 1)
6871

6972
def sum_in_range(self, start_index: int, end_index: int) -> int:
@@ -77,6 +80,9 @@ def sum_in_range(self, start_index: int, end_index: int) -> int:
7780
if start_index > end_index or start_index < 0 or end_index >= self.size:
7881
raise Exception("Invalid index")
7982

83+
if self.root is None:
84+
raise ValueError("Tree not initialized")
85+
8086
return self.query(self.root, start_index, end_index, 0, self.size - 1)
8187

8288
def query(
@@ -113,7 +119,7 @@ def query(
113119
node.left, start_index, end_index, start, mid
114120
) + self.query(node.right, start_index, end_index, mid + 1, end)
115121

116-
def update(self, index: int, new_value: int) -> int:
122+
def update(self, index: int, new_value: int) -> None:
117123
"""
118124
Updates a value at a specific index in the segment tree.
119125
:param index: Index to update.
@@ -126,7 +132,7 @@ def update(self, index: int, new_value: int) -> int:
126132

127133
def modify(
128134
self, node: Node, index: int, new_value: int, start: int, end: int
129-
) -> int:
135+
) -> None:
130136
"""
131137
Recursively updates the tree to reflect a change at a specific index.
132138
:param node: Current node being processed.
@@ -150,4 +156,4 @@ def modify(
150156
if self.mode == "max":
151157
node.value = max(node.left.value, node.right.value)
152158
else:
153-
node.value = node.left.value + node.right.value
159+
node.value = node.left.value + node.right.value

0 commit comments

Comments
 (0)