【发布时间】:2017-03-27 15:39:05
【问题描述】:
我正在寻找一种自下而上遍历树的方法,这样我就可以从我选择的特定叶子开始,然后继续到根。
预期输出:在我的链接 sample tree 中的示例树图像(取自 here)中,如果我指定从 Y 开始,算法将返回 YXZWVUT。
如果能提供任何帮助,我将不胜感激。
【问题讨论】:
-
您需要在每个节点添加对父元素的引用。
-
取决于您如何表示树。要点是你必须知道每个节点的父节点,这可以通过在每个节点中存储一个父指针来完成,或者在二叉树的某些实现中使用像
x/2这样的普通数学公式等。你可以轻松实现你的目标如果你知道每个节点的父节点 && 你知道一个节点是否是根节点 -
@shole 我在每个节点上都有对父元素的引用,但我一直坚持如何通过算法有效地做到这一点。我的树不是二叉树。
-
我不明白。如果您有对父级的引用,它不只是循环直到您到达根目录吗?这是界限,因为您只访问路径上的所有节点一次,这显然是不可避免的。那么你在纠结什么,也许你可以描述更多我们可以帮助你的东西:)
-
@shole 抱歉,如果我没有正确澄清。从我选择的叶子开始 - 特别是最深的节点(叶子) - 我想访问/打印整个树的每个节点并最终到达根。