标题为什么需要有二叉树
数组查询快(下标),但删除或者插入就比较慢(遍历)
链表与之相反,删除和插入元素很快,但查找很慢
所以二叉树就应运而生了,它结合二者的优点,取二家之长
leetcode 自定义创建二叉树
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
TreeNode() {
}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
public class createTree {
static int[] TreeNodeValue;
createTree(int[] TreeNodeValue){
this.TreeNodeValue = TreeNodeValue;
}
public static TreeNode addTree_Preorder(TreeNode node,int index){
if(index+1> TreeNodeValue.length){
return node;
}else {
node.val= TreeNodeValue[index];
}
TreeNode leftchild = new TreeNode();
node.left = addTree_Preorder(leftchild,++index);
TreeNode rightchild = new TreeNode();
node.right = addTree_Preorder(rightchild,++index);
return node;
}
public static void main(String[] args) {
int[] root;
root = new int[]{3,1,4,0,2};
createTree b = new createTree(root);
TreeNode node = new TreeNode();
TreeNode res = b.addTree_Preorder(node,0);
b.show(res);
}
}