最终的节点集合有两种情况:
- 属于
target
节点的子节点(包括target
节点本身) - 属于
target
节点的祖先节点的子节点
针对第一种情况:
直接深搜遍历target
节点的左子节点与右子节点即可
针对第二种情况:
从root
节点遍历到target
节点,保存target
的所有祖先节点、祖先节点
到target
节点的距离,以及target
节点位于祖先节点的哪个子树。
然后对所有的祖先节点进行深搜,遍历到对应的距离即可。
特殊情况
k = 0
target
节点就是root
节点v