📅  最后修改于: 2023-12-03 15:10:20.241000             🧑  作者: Mango
在计算机科学中,树是一种重要的数据结构,它是由n个节点组成的有层次关系的集合。树的遍历是指按照某种顺序依次访问树中所有节点的过程。常见的树的遍历方式有前序遍历、中序遍历和后序遍历。
前序遍历是指先访问根节点,然后访问左子树,最后访问右子树。前序遍历的遍历顺序可以用以下代码实现:
def preorderTraversal(root: TreeNode) -> List[int]:
if not root:
return []
res = [root.val]
res += preorderTraversal(root.left)
res += preorderTraversal(root.right)
return res
中序遍历是指先访问左子树,然后访问根节点,最后访问右子树。中序遍历的遍历顺序可以用以下代码实现:
def inorderTraversal(root: TreeNode) -> List[int]:
if not root:
return []
res = inorderTraversal(root.left)
res += [root.val]
res += inorderTraversal(root.right)
return res
后序遍历是指先访问左子树,然后访问右子树,最后访问根节点。后序遍历的遍历顺序可以用以下代码实现:
def postorderTraversal(root: TreeNode) -> List[int]:
if not root:
return []
res = postorderTraversal(root.left)
res += postorderTraversal(root.right)
res += [root.val]
return res
以上三种遍历方式都是基于递归实现的,当然也可以使用栈来实现迭代遍历。此外,还有一种常见的树的遍历方式是层次遍历,它需要用到队列实现。