【发布时间】:2015-10-25 18:59:46
【问题描述】:
我是 python 新手,正在尝试返回有序树的预排序列表(注意:不是二叉树)。在递归到达树的叶子后,我遇到了一些麻烦。如何让它回到上一个节点?到目前为止,这是我的代码:
def OrdPreOrder(T):
if Is_OrdLeaf(T):
return []
else:
for t in Subtrees(T):
return [OrdRoot(t)] + OrdPreOrder(t)
提前致谢,
【问题讨论】:
-
有趣的问题,但您的问题缺少一个基本要素:示例输入/输出。请read this 并更新提供的信息。
-
关于
how do I get it to go back up to the previous node?的简短说明:递归为您做这件事。我假设你知道pre-order visits the tree(即当前节点,然后是子节点) -
据我所知,您的代码对叶节点没有任何作用。通常,您会检查树(即
T)是否为空(例如None),如果是则返回。如果不是,请对节点内容进行处理,然后访问子/子树。 -
你应该阅读 PEP8,并使用 pylint 来检查你的代码,这里,通常情况下,T 不应该大写,而且太短(我们不知道它是什么,这不是告诉我们)。虽然不会解决你的问题。就像@Pynchia 说的,我们想要一个示例输入和输出:)