- 對於二叉樹的基本知識其中包括二叉樹的遍歷,以前有時候筆試題可能有這種題目,雖然比較簡單,但是對於初學者可能往往記不太住;
- 二叉樹的遍歷方式簡單來說有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中處理分別處理根,左,右三個節點,如果根節點在第一位就是前序,在第二位就是中序,在第三位就是后序,這樣子一來的話面對二叉樹遍歷的筆試題,腦海里默念一下這個算法就很清晰了;