Lowest Common Ancestor of Deepest Leaves
Given the root of a binary tree, return the lowest common ancestor of its deepest leaves.
Recall that:
- The node of a binary tree is a leaf if and only if it has no children.
- The depth of the root of the tree is
0; if the depth of a node isd, the depth of each of its children isd + 1. - The lowest common ancestor of a set
Sof nodes is the nodeAwith the largest depth such that every node inSis in the subtree with rootA.
Note: This question is the same as 865: https://leetcode.com/problems/smallest-subtree-with-all-the-deepest-nodes/
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]The node with value 2 is the lowest common ancestor of the deepest leaf nodes 7 and 4.
Example 2
1
Input
root = [1]Output
[1]The root is the deepest node in the tree, and it is the LCA of itself.
Constraints
- The number of nodes in the tree will be in the range
[1, 1000]. 0 <= Node.val <= 1000- The values of the nodes in the tree are unique.