胡扯:第一次接触 前中后 遍历,应该是在上数据结构,玩手机抬头偶然听说的。很长一段时间我去记它的规律又因
为并不是很常用,所以总是记记忘忘。 但是最近在学习递归的时候,发现用 递归去遍历真的是好用又好记还好理解,
本着好东西不私藏的原则,在这里贡献给大家。
先简单说一下,三种便利顺序。(心急了直接上后面看代码)
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; }
}
如果你不想这么输出,想收集起来的话,建议可以去弄个全局变量,一个个把上面的输出换成全局变量就好了。 是不是很简单