class Node:
def __init__(self,key):
self.left = None
self.right = None
self.val = key
def calculate_height(node):
if node is None:
return 0
left_height = calculate_height(node.left)
right_height = calculate_height(node.right)
return max(left_height,right_height)+1
def find_node_and_subtree_heights(root):
if root is None:
return
left_height = calculate_height(root.left)
right_height = calculate_height(root.right)
print(f'({root.val},{left_height},{right_height})')
find_node_and_subtree_heights(root.left)
find_node_and_subtree_heights(root.right)
root = Node(50)
root.left = Node(30)
root.right = Node(70)
root.left.left = Node(20)
root.left.left.left = Node(15)
root.left.left.right = Node(25)
root.left.right = Node(40)
root.right.left = Node(60)
root.right.right = Node(80)
find_node_and_subtree_heights(root)
# Output:
# (50,3,2)
# (30,2,1)
# (20,1,1)
# (15,0,0)
# (25,0,0)
# (40,0,0)
# (70,1,1)
# (60,0,0)
# (80,0,0)
沒有留言:
張貼留言