- 对于二叉树的基本知识其中包括二叉树的遍历,以前有时候笔试题可能有这种题目,虽然比较简单,但是对于初学者可能往往记不太住;
- 二叉树的遍历方式简单来说有3种方式,前,中,后序遍历,一般采用递归算法,有的可能还存在所谓的层次遍历,就是一层一层的遍历;
- 从https://www.cnblogs.com/songwenjie/p/8955856.html这里盗个图,分别说明一下3中遍历;
-
其实要记忆这东西也很简单,遍历的顺序都是根据根节点的位置来的,根节点在第一个就是前序,根节点在第二位就是中序,根节点在第三位就是后续;
- 递归调用的算法如下(Java版):
import lombok.Data; @Data public class Node<T> { private T data; private Node<T> left; private Node<T> right; public static void main(String[] args) { Node<String> root = new Node<>(); iterator(root); } public static <T> void iterator(Node<T> root) { if (root == null) return; System.err.println(root.getData()); iterator(root.getLeft()); iterator(root.getRight()); } }
- 代码就是这么简单iterator中处理分别处理根,左,右三个节点,如果根节点在第一位就是前序,在第二位就是中序,在第三位就是后序,这样子一来的话面对二叉树遍历的笔试题,脑海里默念一下这个算法就很清晰了;