作为一种常用的数据结构,二叉树经常被用来存储数据、搜索和排序。遍历二叉树是非常常见的操作之一。Python作为一种简单易用的编程语言,有许多方法可以实现二叉树的遍历。本文将介绍如何使用Python实现二叉树的前序、中序和后序遍历。
二叉树的基础
在学习二叉树的遍历之前,我们需要了解二叉树的基本概念。二叉树由节点组成,每个节点都有一个值和两个子节点(左子节点和右子节点)。节点的子节点可以为空。
二叉树的遍历
二叉树的遍历是指按照一定的顺序访问二叉树中的所有节点。常用的遍历方式有三种:前序遍历、中序遍历和后序遍历。
前序遍历
前序遍历的顺序为根节点、左子树、右子树。具体实现时,可以首先输出根节点的值,然后递归地遍历左子树和右子树。
以下是Python代码实现:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def preorderTraversal(root: TreeNode):
if root is None:
return []
res = [root.val]
res += preorderTraversal(root.left)
res += preorderTraversal(root.right)
return res
中序遍历
中序遍历的顺序为左子树、根节点、右子树。具体实现时,需要递归地遍历左子树、输出根节点的值、再递归遍历右子树。
以下是Python代码实现:
def inorderTraversal(root: TreeNode):
if root is None:
return []
res = []
res += inorderTraversal(root.left)
res.append(root.val)
res += inorderTraversal(root.right)
return res
后序遍历
后序遍历的顺序为左子树、右子树、根节点。具体实现时,需要递归地遍历左子树、右子树,最后输出根节点的值。
以下是Python代码实现:
def postorderTraversal(root: TreeNode):
if root is None:
return []
res = []
res +=
.........................................................