一、先序遍历
二、中序遍历
三、后序遍历
四、层次遍历
一、先序遍历
1、先序遍万二叉树,指的是从根结点出发,按照以下步骤访问二叉树的每一个结点
即,每遇一个结点,先进行访问。
①、访问当前结点。
②、进入当前结点的左子树,以同样的步骤遍历左子树中的结点。
③、遍历完当前结点的左子数后,再进入当前它的右子树,以同样步骤遍历右子树中的结点
二、中序遍历
从根结点出发
①、先进入当前结点左子树,以同样的步骤访问二叉树中的每个结点;
②、访问当前节点
③、最后进入前结点的右子树,以同样的步骤遍历右子树中的结点。
第一次经过时不访问,等遍历完左子树后再访问,然后遍历右子树,第二次经过才访问。
三、后序遍历
从根结点出发,
1.优先进入当前结点的左子树,以同样的步骤遍历左子树中的结点
2、如果当前无左子树,则进入右子树,以同样步骤遍历左子树中的结点;
③直到当前结点的左子树和右子树都遍历完后,才访问该结点。
前两次不访问,第三次经过才访问。
四、层次遍历
按二叉树中的层次从左到右依次遍历每层中的结点
思路:使用队列,从根结点开始,依次将左、右孩子入队,而后每次队列中的一个结点出队都将在右孩子入队,直到所有结点都出队,出队顺序就是层次遍历结果
例如:
1、根结点①入队
2、根结点①出队,同时②和③分别入队;
3、队头结点②出队,同时②的左右孩子④⑤依次入队;
4、队头结点③出队,⑥⑦依次入队,不断循环,直至队列内为空。