热门基础算法笔记-二叉树遍历
先上一个经典递归 n的阶乘
public int jiecheng(int n){
int res=1;
if(n==1){return 1;} //递归结束条件
else{res=jiecheng(n-1)*n;}
return res;
}
前序遍历
简单理解:根左右 ,代码也可照这个记忆
ArrayList<Integer> list=new ArrayList<Integer>(); //定义一个集合来存
public ArrayList<Integer> xx(TreeNode root){
if(root==null) return list; //递归方法一般开始都要设置一个结束条件
list.add(root.val); //根
xx(root.left); //左
xx(root.rigth); //右
return list;
}
中序遍历
简单理解:左根右 ,代码也可照这个记忆
ArrayList<Integer> list=new ArrayList<Integer>(); //定义一个集合来存
public ArrayList<Integer> xx(TreeNode root){
if(root==null) return list; //递归方法一般开始都要设置一个结束条件
xx(root.left); //左
list.add(root.val); //根
xx(root.rigth); //右
return list;
}
后续遍历
简单理解:左右根 ,代码也可照这个记忆
ArrayList<Integer> list=new ArrayList<Integer>(); //定义一个集合来存
public ArrayList<Integer> xx(TreeNode root){
if(root==null) return list; //递归方法一般开始都要设置一个结束条件
xx(root.left); //左
xx(root.rigth); //右
list.add(root.val); //根
return list;
}