Find the height of the binary tree given that only the nodes on the even levels are considered as the valid leaf nodes.
The height of a binary tree is the number of edges between the tree’s root and its furthest leaf. But what if we bring a twist and change the definition of a leaf node. Let us define a valid leaf node as the node that has no children and is at an even level (considering root node as an odd level node).
Output :Height of tree is 4
Solution : The approach to this problem is slightly different from the normal height finding approach. In the return step, we check if the node is a valid root node or not. If it is valid, return 1, else we return 0. Now in the recursive step- if the left and the right sub-tree both yield 0, the current node yields 0 too, because in that case there is no path from current node to a valid leaf node. But in case at least one of the values returned by the children is non-zero, it means the leaf node on that path is a valid leaf node, and hence that path can contribute to the final result, so we return max of the values returned + 1 for the current node.
Height of tree is 4
Time Complexity:O(n) where n is number of nodes in given binary tree.
- Find n-th node in Postorder traversal of a Binary Tree
- Height of a complete binary tree (or Heap) with N nodes
- Complexity of different operations in Binary tree, Binary Search Tree and AVL tree
- Select a Random Node from a tree with equal probability
- Advantages of Trie Data Structure
- Deepest right leaf node in a binary tree | Iterative approach
- Find next right node of a given key | Set 2
- Succinct Encoding of Binary Tree
- Find the closest leaf in a Binary Tree
- Find Height of Binary Tree represented by Parent array
- Minimum no. of iterations to pass information to all nodes in the tree
- Morris traversal for Preorder
- How to determine if a binary tree is height-balanced?
- Diameter of a Binary Tree
- Write a Program to Find the Maximum Depth or Height of a Tree
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.