备战字节1——二叉遍历(递归)
二战字节,二叉树是字节面试必考算法,学不会,能进字节我吃shit
1.定义部分
//二叉树遍历写法
//前序遍历:TreeNode类,定义三个参数,同时构造函数;
//List<Integer> preOrderReverse类,新建对象,对象引用函数,返回返回值;
//preOrder方法,定义root和result(返回值), 设置停止机制,写逻辑函数
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class TreeNode{//三个参数
int val;
TreeNode left;
TreeNode right;
public TreeNode (int val, TreeNode left, TreeNode right){//构造函数
this.val = val;
this.left = left;
this.right = right;
}
public TreeNode (int val){
this.val = val;
}
public TreeNode(){
}
2.前序遍历三要素:
1.确定递归函数的参数和返回值
2.确定终止条件
3.确定单层递归的逻辑
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList();//对象
preOrder(root,result);//函数,根结点+返回值
return result;
}
public void preOrder(TreeNode root,List<Integer> result)//确定参数和返回值
{
if (root == null)//确定终止条件
{return;}
result.add(root.val);//单层递归逻辑
preOrder(root.left,result);
preOrder(root.right,result);
}
后序:
postOrder(root.left, result);
postOrder(root.right,result);
result.add(root.val);

浙公网安备 33010602011771号