一、问题描述
如何从一个一维数组nums创建一棵完全二叉树
二、Java 代码
public class Tree {
public TreeNode buildTree(TreeNode root, int[] nums, int index){
if (index>=nums.length) {
return null;
}
root = new TreeNode(nums[index]);
root.left = buildTree(root.left, nums, 2*index+1);
root.right = buildTree(root.right, nums, 2*index+2);
return root;
}
public void preOrderTravelse(TreeNode root){
if (root==null) {
return ;
}
System.out.print(root.val+" ");
preOrderTravelse(root.left);
preOrderTravelse(root.right);
}
public static void main(String[] args) {
int[] nums = {1, 2, 3};
Tree tree = new Tree();
TreeNode root = null ;
root = tree.buildTree(root, nums, 0);
tree.preOrderTravelse(root);
//System.out.println(root.val);
}
}