二叉树的构建

笔试面试不会构造树,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));
    }
}

posted @   Dreamer_szy  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示