二叉樹 遞歸 前序 中序 後續遍歷【java簡單】

本文最早發表在個人博客

http://www.xdx97.com/#/single?bid=ead7cb23-ecfa-5108-7c5b-37f8d8696cc2

 胡扯:第一次接觸 前中後 遍歷,應該是在上數據結構,玩手機擡頭偶然聽說的。很長一段時間我去記它的規律又因

爲並不是很常用,所以總是記記忘忘。  但是最近在學習遞歸的時候,發現用 遞歸去遍歷真的是好用又好記還好理解,

本着好東西不私藏的原則,在這裏貢獻給大家。

 

先簡單說一下,三種便利順序。(心急了直接上後面看代碼)

    1、前序:   根左右

    2、中序:    左根右

    3、後序:    左右根

    4、在下面的代碼中,你將很好的體會這個順序。

public void ergodic(TreeNode r){
        
    if(r.left == null && r.right == null){
         System.out.print(r.val +" ");
         return ;
     }
    *******************
    想用什麼序  拿到下面的代碼上來
    *******************
        
}


//1、前序
   System.out.print(r.val +" ");
     if(r.left != null)
        ergodic(r.left);
     if(r.right != null)
        ergodic(r.right); 



//2、中序

    
    if(r.left != null)
        ergodic(r.left);
    System.out.print(r.val +" ");    
    if(r.right != null)
        ergodic(r.right);   


//3、後序
    if(r.left != null)
        ergodic(r.left);
    if(r.right != null)
        ergodic(r.right);  

  System.out.print(r.val +" "); 

 

二叉樹代碼

 

public class TreeNode {
     int val;
     TreeNode left;
     TreeNode right;
     TreeNode(int x) { val = x; }
}

如果你不想這麼輸出,想收集起來的話,建議可以去弄個全局變量,一個個把上面的輸出換成全局變量就好了。 是不是很簡單

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