Given a binary tree, find height of it. Height of empty tree is 0 and height of below tree is 3.
Recursively calculate height of left and right subtrees of a node and assign height to the node as max of the heights of two children plus 1. See below pseudo code and program for details.
maxDepth() 1. If tree is empty then return 0 2. Else (a) Get the max depth of left subtree recursively i.e., call maxDepth( tree->left-subtree) (a) Get the max depth of right subtree recursively i.e., call maxDepth( tree->right-subtree) (c) Get the max of max depths of left and right subtrees and add 1 to it for the current node. max_depth = max(max dept of left subtree, max depth of right subtree) + 1 (d) Return max_depth
See the below diagram for more clarity about execution of the recursive function maxDepth() for above example tree.
maxDepth('1') = max(maxDepth('2'), maxDepth('3')) + 1 = 2 + 1 / \ / \ / \ / \ / \ maxDepth('2') = 1 maxDepth('3') = 1 = max(maxDepth('4'), maxDepth('5')) + 1 = 1 + 1 = 2 / \ / \ / \ / \ / \ maxDepth('4') = 1 maxDepth('5') = 1
Time Complexity: O(n) (Please see our post Tree Traversal for details)
- Find Minimum Depth of a Binary Tree
- Print Nodes in Top View of Binary Tree
- Find the maximum path sum between two leaves of a binary tree
- Iterative Method to find Height of Binary Tree
- Print nodes at k distance from root
- Maximum width of a binary tree
- How to determine if a binary tree is height-balanced?
- Diameter of a Binary Tree
- Level Order Tree Traversal
- If you are given two traversal sequences, can you construct the binary tree?
- Convert a Binary Tree into its Mirror Tree
- Write a program to Delete a Tree
- Write Code to Determine if Two Trees are Identical
- Write a program to Calculate Size of a tree | Recursion
- Tree Traversals (Inorder, Preorder and Postorder)
Improved By : coduitachi