二叉樹的構建
阿新 • • 發佈:2022-04-01
筆試面試不會構造樹,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)); } }