二叉树的前序、中序和后序遍历
-
前序遍历:先输出父节点,再遍历左子树(递归)和右子树(递归)
-
中序遍历:先遍历左子树(递归),再输出父节点,再遍历右子树(递归)
-
后序遍历:先遍历左子树(递归),再遍历右子树(递归),最后输出父节点
先创建一颗二叉树,前序、中序和后续的步骤
前序遍历:
- 先输出当前节点(初始节点是 root 节点)
- 如果左子节点不为空,则递归继续前序遍历
- 如果右子节点不为空,则递归继续前序遍历
上图的输出顺序为:1、2、3、4
中序遍历:
- 如果当前节点的左子节点不为空,则递归中序遍历
- 输出当前节点
- 如果当前节点的右子节点不为空,则递归中序
上图的输出顺序为:2、1、3、4
后序遍历:
4. 如果左子节点不为空,则递归继续前序遍历
5. 如果右子节点不为空,则递归继续前序遍历
6. 输出当前节点
上图的输出顺序为:2、4、1、3