Smallest Subtree with all the Deepest Nodes
Given the root of a binary tree, the depth of each node is the shortest distance to the root.
Return the smallest subtree such that it contains all the deepest nodes in the original tree.
A node is called the deepest if it has the largest depth possible among any node in the entire tree.
The subtree of a node is a tree consisting of that node, plus the set of all descendants of that node.
Note: This question is the same as 1123: https://leetcode.com/problems/lowest-common-ancestor-of-deepest-leaves/
Example 1
3
/ \
5 1
/ \ / \
6 2 0 8
/ \
7 4Input
root = [3,5,1,6,2,0,8,null,null,7,4]Output
[2,7,4]We return the node with value 2 because it is the smallest subtree containing all deepest nodes, 7 and 4.
Example 2
1
Input
root = [1]Output
[1]The root is the deepest node in the tree.
Constraints
- The number of nodes in the tree will be in the range
[1, 500]. 0 <= Node.val <= 500- The values of the nodes in the tree are unique.