二叉树的遍历主要有四种方式:前序遍历(Pre-order Traversal),中序遍历(In-order Traversal),后序
遍历(Post-order Traversal),以及层序遍历(Level-order Traversal,也称为广度优先遍历)。
以下是使用 Python 实现的这四种遍历方式的示例代码:
首先,定义一个简单的二叉树节点类:
python 复制代码
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
1. 前序遍历(根-左-右)
python 复制代码
def preorder_traversal(root):
if not root:
return []
result = [root.val]
result += preorder_traversal(root.left)
result += preorder_traversal(root.right)
return result
2. 中序遍历(左-根-右)
python 复制代码
def inorder_traversal(root):
if not root:
return []
result = inorder_traversal(root.left)
result.append(root.val)
result += inorder_traversal(root.right)
return result
3. 后序遍历(左-右-根)
python 复制代码
def postorder_traversal(root):
if not root:
return []
result = postorder_traversal(root.left)
result += postorder_traversal(root.right)
result.append(root.val)
return result
4. 层序遍历(广度优先遍历)
层序遍历通常使用队列来实现。
python 复制代码
from collections import deque
def level_order_traversal(root):