深入理解前中后序

二叉树遍历框架

1
2
3
4
5
6
7
8
9
10
void traverse(TreeNode root) {
if (root == null) {
return;
}
// 前序位置
traverse(root.left);
// 中序位置
traverse(root.right);
// 后序位置
}

把代码写在不同的位置,代码执行的时机也就不同

  1. 前序位置
    前序位置就是刚进入一个节点(元素)的时候
  2. 中序位置
    中序位置一般只在二叉树有意义,多叉树是没有中序位置的
  3. 后序位置
    后序位置就是即将离开一个节点(元素)的时候。