📅  最后修改于: 2023-12-03 15:40:01.409000             🧑  作者: Mango
在树的遍历过程中,有一种遍历方式被称为“后序遍历(postorder traversal)”。后序遍历的顺序是先访问左子树,再访问右子树,最后访问根节点。在树结构中,每个节点都被遍历一次且仅一次。现在给你一棵二叉树,请你输出它的后序遍历结果。
对于一棵二叉树,我们可以使用递归或迭代的方式进行后序遍历。
递归方式:
代码实现如下:
def postorderTraversal(root):
if root is None:
return []
result = []
result.extend(postorderTraversal(root.left))
result.extend(postorderTraversal(root.right))
result.append(root.val)
return result
迭代方式:
代码实现如下:
def postorderTraversal(root):
if root is None:
return []
stack = [root]
result = []
while stack:
node = stack.pop()
result.append(node.val)
if node.left:
stack.append(node.left)
if node.right:
stack.append(node.right)
return result[::-1]
后序遍历是树遍历中的一种方式,在遍历过程中,每个节点都只被访问一次。使用递归或迭代方式都可以实现后序遍历。在实际应用中,后序遍历通常用于求解树的高度、深度、节点数等问题。