二叉树遍历

Posted thoughtful-actors

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树遍历相关的知识,希望对你有一定的参考价值。

一、二叉树遍历可以有三种遍历方法:

1、先序遍历

  先根节点再左子树再右子树

  第一个节点一定是根节点

  方法:先序遍历的就先把根节点写出来,然后再看左子树,如果左子树还有分支节点,再把左子树整体看成是一个只有三个节点的简化版的二叉树,然后再把根节点写出来,依次类推,写出根节点。左子树写完 后,然后再看右子树,用同样的方式先简化成三个节点,然后写出根节点。

2、中序遍历

  先左子树再根节点再右子树

  方法;先找到最高层的根节点,然后写出来,然后把整体看成只有三个节点的简化版二叉树,先找到左子树,如果还有分支节点,然后再看成一个简化的二叉树,然后找到左子树,最终找到没有分支的左子树,把节点写到根节点的左边(最后这个节点离根节点最远,以每次写都要放到根节点旁边,其他的往左移位),然后再把这个节点的根节点写出来,然后再写右子树,然后再看上一层的简化版二叉树,再从左子树开始遍历,依次类推,倒着把节点写出来,最后到最高层的根节点。然后再看右子树,重复左子树的方法进行遍历,不过这次是在根节点右边依次按顺序写。

3、后序遍历

  先左子树再右子树再根节点

  最后一个节点一定是根节点

  方法:先找到最高层的根节点,写到最后一位,然后把整个二叉树看成是一个简化的三节点二叉树,先找出左子树,如果左子树还有分支节点,就再把左子树简化成一个三节点的二叉树,找出左子树,依次类推,最终到没有分支的节点的二叉树,写出这个节点,然后再看这个节点的根节点和右子树,先写右子树的节点,再写根节点,然后再往上一层遍历,这样逆向到第一层的根节点时,再看右子树,然后按照同样的方法写出节点,最后的才写最高层的根节点,所以根节点在最后一位。

4、分析规律;

  三种遍历方法都遵循同一种规律,只是遍历方式不同。第一次遍历,先找到最高层的根节点,然后每一次都把二叉树看成是一个只有三个节点的简化版二叉树,如果不够三个节点,就虚拟的看成三个节点,然后根据遍历方式遍历。

二、给出两种遍历,如何推算出二叉树

1、给出先序遍历和中序遍历

  根据先序遍历确定根节点,然后再根据中序遍历确定左子树和右子树。

 

2、给出后序遍历和中序遍历

  根据后续遍历确定根节点,然后根据中序遍历确定左子树和右子树。

以上是关于二叉树遍历的主要内容,如果未能解决你的问题,请参考以下文章

JS中的二叉树遍历

递归遍历二叉树

Python 二叉树的创建和遍历、重建

二叉树进阶题------前序遍历和中序遍历构造二叉树;中序遍历和后序遍历构造二叉树

二叉树进阶题------前序遍历和中序遍历构造二叉树;中序遍历和后序遍历构造二叉树

二叉树(2.二叉树的遍历和实现)