二叉树先序遍历、后序遍历、中序遍历

二叉树的遍历

  • 先序遍历——中左右
  1. 从根部 A 开始,然后开始遍历左子树,直接找到 B ,查看 B 有没有左子树,有 D,再查看 D 有没有子树,没有,D 已经是叶子,所以第二个是 D。
  2. 倒回去,取中 B,第三个数是 B。查看 B 有没有右子树,有 E 。查看 E 有没有子树,有 G (左),H (右)。所有后面三个数是 EGH
  3. 从 H 返回到 A ,A查看右子树最近结点 C,存 C。继续查看是否有左子树,不存在,开始查看右子树,和上同理不再解释。
    二叉树先序遍历、后序遍历、中序遍历
  • 中序遍历——左中右
  1. 先查左子树,存在继续查找直到找到最左的叶子 D,第一个存进去。
  2. 返回上一级,找到中 B,存第二个数进去。
  3. 查找 B 的右子树,存在 E,查看 E 是否存在 左子树,存在 G 左叶子和 H 右叶子,所以是 GEH。
  4. 最后 H 返回到 A,开始遍历右边的子树,与上同理不解释。
    二叉树先序遍历、后序遍历、中序遍历
  • 后续遍历——左右中
  1. 取做最左的叶子 D,返回上一级 B,查看有没有右子树,存在最近结点 E,查看 E 有没有左子树,存在左叶子 G,存第二个数 G
  2. 返回上一结点 B,查看是否存在右子树,发现存在右叶子 H,存 H,后面紧跟着 E B。
  3. B 返回上一结点 A,查看是否存在右子树,找到最近的一节点 C,查看 C 是否存在左子树,不存在左子树,查看是否存在右子树,存在最近结点 F,以此类推,后面的就是 J I F C
    二叉树先序遍历、后序遍历、中序遍历