💡 二叉树中与目标节点距离为 K 的所有节点(Python 解法详解)
🧩 题目描述
给定一个二叉树的根节点 root
,一个树中的目标节点 target
,以及一个整数 k
,请返回所有与目标节点距离为 k
的节点值组成的列表。返回结果可以按任意顺序排列。
示例:
给定如下二叉树:
3
/ \
5 1
/ \ / \
6 2 0 8
/ \
7 4
target = 5
k = 2
返回结果为:[7, 4, 1]
🔍 解题分析
从目标节点 target
出发,我们可以向它的左子树、右子树以及“父节点”方向扩展。问题在于,普通的二叉树节点并没有“父指针”,这限制了我们无法向上遍历。
为了解决这个问题,我们可以分为两个步骤:
- 预处理:通过深度优先遍历(DFS),记录每个节点的父节点,用一个
parent_map
表示节点与其父节点的映射关系。 - 广度优先搜索(BFS):从