Home Blog Coding Problem Practice

Find height of tree

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))
Comment