二叉树遍历是树形结构的基础操作,前序、中序、后序、层序四种遍历方式各有用途。掌握递归与迭代两种实现,是解决所有树形问题的起点。
一、四种遍历
1
/ \
2 3
/ \
4 5
前序(根左右): 1 2 4 5 3
中序(左根右): 4 2 5 1 3
后序(左右根): 4 5 2 3 1
层序(BFS): 1 2 3 4 5
Mermaid · 渲染中(下方为源码)
graph TD 1 --> 2 1 --> 3 2 --> 4 2 --> 5
二、递归实现
void preorder(TreeNode root, List<Integer> res) {
if (root == null) return;
res.add(root.val); // 根
preorder(root.left, res); // 左
preorder(root.right, res); // 右
}
void inorder(TreeNode root, List<Integer> res) {
if (root == null) return;
inorder(root.left, res); // 左
res.add(root.val); // 根
inorder(root.right, res); // 右
}
void postorder(TreeNode root, List<Integer> res) {
if (root == null) return;
postorder(root.left, res); // 左
postorder(root.right, res); // 右
res.add(root.val); // 根
}