Published:
'''
input tree
1
2 3
4 5 6 7
8 9 10 11 12 13 14 15
'''
class Node:
pass
root = Node()
root.data = 1
root.left = Node()
root.right = Node()
root.left.data = 2
root.left.left = Node()
root.left.right = Node()
root.right.data = 3
root.right.left = Node()
root.right.right = Node()
node2 = root.left
node2.left.data = 4
node2.right.data = 5
node3 = root.right
node3.left.data = 6
node3.right.data = 7
node4 = node2.left
node4.left = Node()
node4.left.data = 8
node4.right = Node()
node4.right.data = 9
node5 = node2.right
node5.left = Node()
node5.left.data = 10
node5.right = Node()
node5.right.data = 11
node6 = node3.left
node6.left = Node()
node6.left.data = 10
node10 = node5.left
node10.left = Node()
node10.left.data = 16
# node7 = node3.right
# node7.right = Node()
# node7.right.data = 11
maxLength = 0
def findHightOfTree(head, length):
if head is None:
print(length)
return length
maxHeight = 0
if hasattr(head, "left"):
lhight = findHightOfTree(head.left, length)
maxHeight = lhight + 1
if hasattr(head, "right"):
rhight = findHightOfTree(head.right, length)
if maxHeight - 1 < rhight:
maxHeight = rhight+1
print(maxHeight)
return maxHeight;
print(findHightOfTree(root, 0))