Given a tree of N nodes, the task is to find the node having maximum depth starting from the root node, taking the root node at zero depth. If there are more than 1 maximum depth node, then find the one having the smallest value.
Input: 1 / \ 2 3 / \ 4 5 Output: 4 Explanation: For this tree: Height of Node 1 - 0, Height of Node 2 - 1, Height of Node 3 - 1, Height of Node 4 - 2, Height of Node 5 - 2. Hence, the nodes whose height is maximum are 4 and 5, out of which 4 is minimum valued. Input: 1 / 2 / 3 Output: 3 Explanation: For this tree: Height of Node 1 - 0, Height of Node 2 - 1, Height of Node 3 - 2 Hence, the node whose height is maximum is 3.
- The idea is to use Depth First Search(DFS) on the tree and for every node, check the height of every node as we move down the tree.
- Check if it is the maximum so far or not and if it has height equal to maximum value, then is it the minimum valued node or not.
- If yes then update the maximum height so far and the node value accordingly.
Below is the implementation of the above approach:
- Replace node with depth in a binary tree
- Depth of the deepest odd level node in Binary Tree
- Minimum and maximum node that lies in the path connecting two nodes in a Binary Tree
- Find Minimum Depth of a Binary Tree
- Sum of nodes at maximum depth of a Binary Tree
- Sum of nodes at maximum depth of a Binary Tree | Set 2
- Sum of nodes at maximum depth of a Binary Tree | Iterative Approach
- Write a Program to Find the Maximum Depth or Height of a Tree
- Node having maximum sum of immediate children and itself in n-ary tree
- Maximum sum possible for every node by including it in a segment of N-Ary Tree
- Maximum XOR with given value in the path from root to given node in the tree
- Find the maximum Even Digit Sum node in the given tree
- Get maximum left node in binary tree
- Maximum decimal equivalent possible among all connected components of a Binary Valued Graph
- Find the node with minimum value in a Binary Search Tree
- Maximum difference between node and its ancestor in Binary Tree
- Find the maximum node at a given level in a binary tree
- Find the node with maximum value in a Binary Search Tree
- Find the node with minimum value in a Binary Search Tree using recursion
- Minimum time to burn a Tree starting from a Leaf node