Files
dsa-tutoring/notes-and-examples/2026.05.27/find_depth.py
2026-05-27 15:43:36 -07:00

37 lines
823 B
Python

# Tree example:
# 10
# / \
# 5 15
# / \ \
# 3 7 20
class Node:
def __init__(self, value, left=None, right=None):
self.value = value
self.left: Node | None = left
self.right: Node | None = right
root_node = Node(10)
root_node.left = Node(5)
root_node.left.left = Node(3)
root_node.left.right = Node(7)
root_node.right = Node(15)
root_node.right.right = Node(20)
def find_depth(root: Node | None, subtree_depth=0) -> int:
if root is None:
return subtree_depth
left_depth = find_depth(root.left, subtree_depth + 1)
right_depth = find_depth(root.right, subtree_depth + 1)
return max(left_depth, right_depth)
print(find_depth(root_node))
root_node.right.right.right = Node(1)
print("After adding another level:", find_depth(root_node))