865. Smallest Subtree with all the Deepest Nodes
https://leetcode.com/problems/smallest-subtree-with-all-the-deepest-nodes/
找出所有最深叶子的LCA(lowest common ancestor)。二叉树问题=>分治。直观解法是先统计所有最深叶子的个数cnt,再用一个额外的分治统计左右子树包含了多少最深叶子,当l+r刚好==cnt时该结点即所求。还可以更优化,分治统计左右子树的深度并让左右子树返回它们各自子树的结果,当它俩深度相同时说明cur是当前同时涵盖了最深叶结点的LCA,否则返回深度更深的子树的结果。
Last updated
Was this helpful?