【发布时间】:2015-05-31 03:43:56
【问题描述】:
我无法想象一种递归获取普通树中所有子节点高度的方法(非BST)。
对于BST,这是相当明显的,因为只有两个节点。考虑到每个节点可能有多个子节点,你会怎么做?
您将如何获取普通树中所有子节点高度的列表?
因为我的代表人数不足 10 人,所以我不会画画,但是说我有一棵有多个孩子的树。这些孩子中的每一个最终都会导致不同的叶节点。我想要从根节点到叶节点的每个路径的高度列表。你会怎么做呢?
我知道:
def height(t):
if not t.children:
return 1
else:
return max(height(c) for c in t.children) + 1
显然会返回 max 高度,但我想不出一种方法可以递归地对到达树末端的每条路径执行此操作。我不只想要最大高度,我想要所有高度。
【问题讨论】: