二叉樹的前中後遍歷(遞歸版本)

先序遍歷:根左右
中序遍歷:左根右
後序遍歷:左右根

//定義二叉樹
public class Node {
    int val;
    Node left;
    Node right;
    Node(int data) {
    this.val = data;
//先序遍歷
public static void preOrderRecur(Node head) {
    if(head ==null)
        return;
    System.out.print(head.val+"  ");
    preOrderRecur(head.left);
    preOrderRecur(head.right);
}

//中序遍歷
public static void inOrderRecur(Node head) {
    if (head == null) {
        return;
    }
    inOrderRecur(head.left);
    System.out.print(head.val+"  ");
    inOrderRecur(head.right);
}

//後序遍歷
public static void posOrderRecur(Node head) {
    if (head == null) {
        return;
    }
    posOrderRecur(head.left);
    posOrderRecur(head.right);
    System.out.print(head.value + " ");
    }

遞歸版本沒什麼好解釋的啦。。。
只要記得當遍歷到根節點時進行打印操作就行了,左右就直接進行遞歸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章