💡【二叉树】包含所有最深节点的最小子树(Python题解 + 图解 + 思路详解)
🧩 题目描述
给定一棵二叉树的根节点 root
,每个节点的深度被定义为它到根节点的最短距离。
我们需要返回一棵子树,这棵子树:
- 包含了二叉树中所有最深的节点;
- 是这些节点的最小子树,也就是说,它是包含这些节点的最浅的公共祖先子树。
换句话说,我们的目标是找出:所有最深节点的最近公共祖先(Lowest Common Ancestor, LCA)。
🧠 解题分析
1️⃣ 什么是“最深节点”?
树的“深度”从根节点开始计数。根节点深度为 0,它的子节点深度为 1,以此类推。
最深节点指的是那些深度值最大的节点,可能有一个,也可能有多个。
例如:
3
/ \
5 1
/ \
6 8
/
9