public Node deserializeLevelOrder(String data) {
        if (data == null || data.length() == 0) {
            return null;
        }
        String[] input = data.split(",");
        Deque<Node> queue = new LinkedList<>();
        int index = 0;
        queue.offerFirst(Node.newNode(Integer.parseInt(input[index])));
        Node root = queue.peekFirst();
        index++;
        while (!queue.isEmpty()) {
            Node current = queue.pollFirst();
            if (index < input.length && !input[index].equals("%")) {
                current.left = Node.newNode(Integer.parseInt(input[index]));
                queue.offerLast(current.left);
            }
            index++;
            if (index < input.length && !input[index].equals("%")) {
                current.right = Node.newNode(Integer.parseInt(input[index]));
                queue.offerLast(current.right);
            }
            index++;
        }
        return root;
    }
Deserialize Tree using level order traversal.
src/com/interview/tree/SerializeDeserializeBinaryTree.java