本文最早發表在個人博客
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; }
}
如果你不想這麼輸出,想收集起來的話,建議可以去弄個全局變量,一個個把上面的輸出換成全局變量就好了。 是不是很簡單