二叉树的前序中序后序遍历顺序详解
四种遍历方式:前序、中序、后序遍历,按层遍历;所谓“前中后”是以根节点的遍历顺序的位置说的。
前序:根节点-左节点-右节点
中序:左节点-根节点-右节点
后序:左节点-右节点-根节点
遍历规则:从第一层级开始,若节点还有子节点,就往下一层进行遍历,保证每层的遍历方式都是前序(中、后),子节点遍历完毕后,再回到上一层继续遍历
以下为例:
我们详细的讲一下中序遍历顺序:
用arr来记录遍历顺序,每一层遍历过程中保证遵守“左中右”的顺序
第一层,顺序是b-a-c,但b有子节点,进入下一层(arr=null );
顺序是d-b-空,但d有子节点,进入下一层(arr=null );
顺序是空-d-g,arr=空dg,d节点完成,返回上一层(arr=空dg);
d已完成,arr=空dg+b+空(arr=空dgb空);
b已完成,arr=空dgb空+a,c有子节点,进入下一层(arr=空dgb空 a);
顺序是e-c-f,arr=空dgb空 a +e+c,但f有子节点,进入下一层(arr=空dgb空aec);
顺序是空-f-h,arr=空dgb空 aec+空+f+h;
遍历完成,顺序arr=空dgb空aec空fh,忽略空节点,中序遍历顺序即为dgbaecfh
同理,前序为 abdgcefh,后序为 gdbehfca