1. 程式人生 > 其它 >二叉樹的構建

二叉樹的構建

筆試面試不會構造樹,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));
    }
}