Skip to content

Commit dc26a05

Browse files
committed
Added doctest for construct_tree and type hints for TreeNode
1 parent 1b21224 commit dc26a05

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

data_structures/binary_tree/binary_tree_maximum_path_sum.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ class TreeNode:
1919
left, right -> Stores the pointer to left or right node.
2020
"""
2121

22-
def __init__(self, val: int, left=None, right=None) -> None:
22+
def __init__(self, val: int) -> None:
2323
self.val: int = val
24-
self.left: TreeNode | None = left
25-
self.right: TreeNode | None = right
24+
self.left: TreeNode | None = None
25+
self.right: TreeNode | None = None
2626

2727

2828
class GetMaxPathSum:
@@ -62,11 +62,11 @@ class GetMaxPathSum:
6262
29
6363
"""
6464

65-
def __init__(self, root):
65+
def __init__(self, root) -> None:
6666
self.sum = -9999999999
6767
self.root = root
6868

69-
def traverse(self, root: TreeNode) -> int:
69+
def traverse(self, root: TreeNode | None) -> int:
7070

7171
"""
7272
Returns maximum path sum by recursively taking max_path_sum from left
@@ -98,13 +98,22 @@ def max_path_sum(self) -> int:
9898

9999

100100
def construct_tree() -> TreeNode:
101-
"""
101+
r"""
102102
The below tree
103103
-10
104104
/ \
105105
9 20
106106
/ \
107107
15 7
108+
109+
>>> root = TreeNode(-10)
110+
>>> root.left = TreeNode(9)
111+
>>> root.right = TreeNode(20)
112+
>>> root.right.left = TreeNode(15)
113+
>>> root.right.right = TreeNode(7)
114+
115+
>>> GetMaxPathSum(construct_tree()).max_path_sum()
116+
42
108117
"""
109118

110119
root = TreeNode(-10)

0 commit comments

Comments
 (0)