后序遍历二叉树,指的是从根结点出发,按照以下步骤访问树中的每个结点:
- 优先进入当前结点的左子树,以同样的步骤遍历左子树中的结点;
- 如果当前结点没有左子树,则进入它的右子树,以同样的步骤遍历右子树中的结点;
- 直到当前结点的左子树和右子树都遍历完后,才访问该结点。
以下图所示的二叉树为例:
图 1 二叉树
后序遍历这棵二叉树的过程是:
从根节点 1 出发,进入该结点的左子树; 进入结点 2 的左子树,遍历左子树中的结点: 进入结点 4 的左子树,但该结点没有左孩子; 进入结点 4 的右子树,但该结点没有右子树; 访问结点 4; 进入结点 2 的右子树,遍历右子树中的结点: 进入结点 5 的左子树,但该结点没有左孩子; 进入结点 5 的右子树,但该结点没有右孩子; 访问结点 5; 访问结点 2; 进入结点 1 的右子树,遍历右子树中的结点: 进入结点 3 的左子树,遍历左子树中的结点: 进入结点 6 的左子树,但该结点没有左孩子;