如何在二叉树中找到两个给定节点之间的路径

时间:2015-01-19 16:09:19

标签: c++ c tree binary-tree

if we have a tree given below:



      1
     / \
    2   3
   / \  / \
  4  5 6  7  

如何在节点4到5或4到6之间找到路径?         我知道如何找到从根到给定节点的路径,但不能找到2个随机节点之间的路径。

1 个答案:

答案 0 :(得分:3)

您可以从根到两个节点采用两条路径,并删除公共子路径。

         1
        /
       2
      /
     3
   /   \
  4     7
 / \   / \
5   6 8   9

e.g。对于从示例中59的路径,您将获得两条路径 1 2 3 4 51 2 3 7 9和。{ 会发现3是最低的公共父节点。然后将从5开始直到公共父级的路径反转,并将其余路径添加到9的路径中:5 4 + 3 + 7 9 - > 5 4 3 7 9