如何在二叉树中找到距给定节点k距离的节点

时间:2015-01-07 06:57:15

标签: algorithm binary-tree

我遇到THIS geeksforgeeks post,找到二叉树中给定节点距离为k的节点。

即使花了几个小时,我也无法理解它。特别是在祖先中找到距离k处的节点的部分。

有人可以帮我在geeksforgeeks帖子中对代码/算法进行小干运行吗?或者不使用父指针的任何其他易于理解的解决方案?

1 个答案:

答案 0 :(得分:2)

让我们说目标节点的深度是D.

  1. 如果您想要的节点位于以目标节点为根的子树中,则它们的深度应为D + k。
  2. 之后,您需要找到目标节点的所有祖先。 对于每个祖先,如果深度为d,则该祖先与目标节点之间的距离为D-d。 所以最后一步是在这个祖先的另一个子树中找到距离为k - (D-d)的节点。