所谓先序遍历二叉树,指的是从根结点出发,按照以下步骤访问二叉树的每个结点:
- 访问当前结点;
- 进入当前结点的左子树,以同样的步骤遍历左子树中的结点;
- 遍历完当前结点的左子树后,再进入它的右子树,以同样的步骤遍历右子树中的结点;
举个简单的例子,下图是一棵二叉树:
图 1 二叉树
先序遍历这棵二叉树的过程是:
访问根节点 1; 进入 1 的左子树,执行同样的步骤: 访问结点 2; 进入 2 的左子树,执行同样的步骤: 访问结点 4; 结点 4 没有左子树; 结点 4 没有右子树; 进入 2 的右子树,执行同样的步骤: 访问结点 5; 结点 5 没有左子树; 结点 5 没有右子树; 进入 1 的右子树,执行同样的步骤: 访问结点 3; 进入 3 的左子树,执行同样的步骤: 访问结点 6; 结点 6 没有左子树; 结点 6 没有右子树; 进入 3 的右子树,执行同样的步骤: