最近我完成了以下功能,通过“Post Order”方法生成二叉树节点列表:
def getNosPosOrdem(self):
if self.root is not None:
nodesList = []
self.__getNosPosOrdem(nodesList, self.root)
return nodesList
else:
return -1
def __getNosPosOrdem(self, nodesList, node):
if node.leftNode is not None:
self.__getNosPosOrdem(nodesList, node.leftNode)
if node.rightNode is not None:
self.__getNosPosOrdem(nodesList, node.rightNode)
nodesList.append(node.value)
这基本上(直到我理解的部分)是从左到右的最后一个元素,我认为在继续代码验证到下一个元素(上面的其他节点,在到达左下角之后)时会有问题,但令我惊讶的是,它是有效的
重点是,我想理解为什么代码仍然在检查其他节点,即使我在添加底部第一个节点时没有递归调用它:
结果是:[2, 6, 9, 17, 12, 5, 27, 40, 45, 36, 20]
目前没有回答
相关问题 更多 >
编程相关推荐