【发布时间】:2016-10-04 15:00:47
【问题描述】:
我需要解决一个更大的算法,其中一个步骤是计算每个子树中的节点 我不需要代码来做,但我需要帮助来理解
练习是这样的:
基本上我需要返回一棵新树,每个节点都包含该节点的值,以及左子树中的元素数和右子树中的元素数。
这是方法
public AB NumberOnEachSubtree(NodeAB a,NodeAB b) {
}
我想我可以在第一行代码中创建子树,然后在我遍历原始树时添加每个节点,当您返回递归计数节点数时
但我不知道该怎么做.. 帮助
每个节点都有左节点和右节点以及numberNodesLeft和numberNodesRight
【问题讨论】:
-
事实上,树中的节点数恰好是左右子树中的节点数加上根节点的总和,这应该很容易适用于简单的递归方法。将递归方法转换为迭代方法以避免巨大树上的堆栈溢出作为练习留给读者,如果有必要处理这样的树...