public class Test {
public static void main(String[] args) {
Solution solution = new Solution();
Object[] obj = new Object[]{1, null, 2, 3};
TreeNode root = solution.createBinaryTree(obj);
}
}
class TreeNode {
int val;
TreeNode left;
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;
}
}
class Solution {
public TreeNode createBinaryTree(Object[] objects) {
Queue<TreeNode> queue = new LinkedList<TreeNode>();
TreeNode head;
if (objects.length == 0) {
return null;
} else {
head = new TreeNode(Integer.parseInt(objects[0].toString()));
queue.add(head);
int n = 1;
while (n + 1 < objects.length) {
TreeNode current = queue.poll();
if (objects[n] != null) {
TreeNode left = new TreeNode(Integer.parseInt(objects[n].toString()));
current.left = left;
queue.add(left);
}
if (objects[n + 1] != null) {
TreeNode right = new TreeNode(Integer.parseInt(objects[n + 1].toString()));
current.right = right;
queue.add(right);
}
n += 2;
}
if (n == objects.length - 1) {
if (objects[n] != null) {
TreeNode current = queue.poll();
TreeNode left = new TreeNode(Integer.parseInt(objects[n].toString()));
current.left = left;
}
}
return head;
}
}
}