二叉树的构建
笔试面试不会构造树,saaad...
import java.util.ArrayList;
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x){
this.val=x;
}
ArrayList<Integer> list=new ArrayList<Integer>();
//构建树插入结点
public void insert(TreeNode root,int data){
if(data>root.val){
if(root.right==null){
root.right=new TreeNode(data);
}else{
insert(root.right,data);
}
}else{
if(root.left==null){
root.left=new TreeNode(data);
}else{
insert(root.left,data);
}
}
}
//二叉树前序遍历
public ArrayList preOrder(TreeNode root){
if(root!=null) {
list.add(root.val);
//System.out.print(root.val+",");
preOrder(root.left);
preOrder(root.right);
}
return list;
}
//中序遍历
public ArrayList midOrder(TreeNode root){
if(root!=null) {
midOrder(root.left);
list.add(root.val);
//System.out.print(root.val+",");
midOrder(root.right);
}
return list;
}
//后序遍历
public ArrayList backOrder(TreeNode root){
if(root!=null) {
backOrder(root.left);
//System.out.print(root.val+",");
backOrder(root.right);
list.add(root.val);
}
return list;
}
}
import javax.swing.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Solution solution=new Solution();
//调用方法
Integer[] data={1,2,0,5,-1,3,9};
TreeNode tree=new TreeNode(data[0]);
for(int i=1;i<data.length;i++){
tree.insert(tree,data[i]);
}
ArrayList list=tree.backOrder(tree);
System.out.print(list);
//初始化ArrayList方法
//ArrayList test=new ArrayList(Arrays.asList(1,2,4,5));
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律