🌲 最小高度树(Minimum Height Trees)问题解析与解法全解
在树型结构的算法题中,寻找“最小高度树”的问题是一道典型的考查图论与层次遍历技巧的题目。它不仅考查你对图结构的理解,还考验你处理边界情况与优化算法复杂度的能力。
本文将围绕此题展开,详细讲解题目背景、解题思路、核心算法、代码实现及复杂度分析,并通过示例进行说明。
📌 一、题目描述
给定一棵包含 n
个节点的无向树(标记为 0
到 n-1
),以边集 edges
形式给出。你可以任选一个节点作为树的根节点,定义树的高度为 从根节点到最远叶子节点的最长路径的边数。
请你找出所有可能的 根节点标签,使得以该节点为根的树的高度最小。返回这些根节点标签组成的列表(顺序不限)。
输入:
- 一个整数
n
,表示节点数。 - 一个长度为
n - 1
的边列表edges
,其中每个元素是[a, b]
表示a
和b
之间存在一条无向边。
输出:
- 一个包含所有 最小高度树 的根节点的列表。