📅  最后修改于: 2023-12-03 15:21:26.701000             🧑  作者: Mango
二叉树是一种常见的数据结构,其遍历方式有三种:前序遍历、中序遍历和后序遍历,在这篇文章中,我们将探讨如何使用递归实现一次遍历中二叉树的前序、后序和按序遍历。
前序遍历按照“根节点-左子树-右子树”的顺序遍历二叉树,具体过程如下:
使用递归实现前序遍历十分简单,具体代码如下:
def preorder_traversal(root):
if not root:
return
print(root.val) # 访问根节点
preorder_traversal(root.left) # 前序遍历左子树
preorder_traversal(root.right) # 前序遍历右子树
后序遍历按照“左子树-右子树-根节点”的顺序遍历二叉树,具体过程如下:
同样,使用递归实现后序遍历也很容易,具体代码如下:
def postorder_traversal(root):
if not root:
return
postorder_traversal(root.left) # 后序遍历左子树
postorder_traversal(root.right) # 后序遍历右子树
print(root.val) # 访问根节点
按序遍历按照“左子树-根节点-右子树”的顺序遍历二叉树,具体过程如下:
同样,使用递归实现按序遍历也很容易,具体代码如下:
def inorder_traversal(root):
if not root:
return
inorder_traversal(root.left) # 按序遍历左子树
print(root.val) # 访问根节点
inorder_traversal(root.right) # 按序遍历右子树
通过以上代码,我们可以用递归实现一次遍历中二叉树的前序、后序和按序遍历。