树的创建
使用广度遍历创建树
/**
* 层次遍历构造
* 创建一颗二叉树
* @param nums
* @return
*/
public TreeNode createTree(Object[] nums){
//判空
if (nums==null || nums[0] ==null){
return null;
}
TreeNode treeNode = new TreeNode((int)nums[0]);
//使用队列构造树
Queue<TreeNode> treeNodes = new LinkedList<>();
treeNodes.offer(treeNode);
int index = 0;
//开启构造
while (!treeNodes.isEmpty()){
//弹出
TreeNode poll = treeNodes.poll();
if (nums.length > index +1){
index = index + 1;
if (nums[index]!=null){
poll.left = new TreeNode((int)nums[index]);
treeNodes.offer(poll.left);
}
}else{
break;
}
if (nums.length > index +1){
index = index + 1;
if (nums[index]!=null) {
poll.right = new TreeNode((int) nums[index]);
treeNodes.offer(poll.right);
}
}else{
break;
}
}
return treeNode;
}