I am not able to understand how to take input

can you please explain how will we take input in this case.
how will we set the left and right child node and what will be the case

@apoorvsingh27,

to create a binary tree from level order input, we can build this binary tree by maintaining a queue. Queue is used to maintain those nodes that are not yet processed.

Using a variable count to keep track of the number of children added for the current node.

First, create a root node, assign it as the current node. So starting from index 1 (index 0 is the root), as the count is 0, we add this node as left child of the current node. Increase count. If this node is not ‘-1’, add it to the queue.

Moving to the next index, the count is 1, so we add this as right child of current node, reset count to 0 and update current node (by assigning the current node as the first element in the queue). If this node is not ‘-1’, add it to the queue.

i am not able to understand how to write code for this.

can you please share the code of how to take input in this case

@apoorvsingh27,
https://ide.codingblocks.com/s/225063 This is a sample approach. Modify it according to your code. You can attempt the question and reply to me on this thread if you face any problem.

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.

when do we have to stop taking input…what will be the condition to stop the loop

@apoorvsingh27,

you can do something like:

	                int nodeData = sc.nextInt();
			Node nn = new Node(nodeData);

			if (nodeData == -1)
				return null;

			Queue<Node> queue = new LinkedList<>();
			queue.add(nn);
		```

i got it…thanks…