Here is my code Can someone tell me why I always get null pointer exception in the line "current.children.add(tempnode);"
I have already revised it several times by getting the similar answer from here,but it can not work eventually.
class Node{
int val;
List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
}
public static Node BuildTree(Integer[] nodes) {
//Integer[] nodes=new Integer[] {1,null,3,2,4,null,5,6}
if(nodes==null||nodes.length==0)return null;
Queue<Node> treenodequeue=new LinkedList<>();
Queue<Integer> integerqueue=new LinkedList<>();
Node root=new Node(nodes[0]);
for(int i=1;i<nodes.length;i++)integerqueue.offer(nodes[i]);
while(!integerqueue.isEmpty()){
Node current=treenodequeue.poll();
integerqueue.remove(null);
while(integerqueue.peek()!=null) {
Integer tempvalue=integerqueue.poll();
Node tempnode=new Node(tempvalue);
/******************************************************************/
current.children.add(tempnode);
/******************************************************************/
treenodequeue.offer(tempnode);
}
}
return root;
}