private Node deserializeUtil(String input[]) {
        if (index == input.length) {
            return null;
        }

        if (input[index].equals("%")) {
            index++;
            return null;
        }
        Node n = new Node();
        n.data = Integer.parseInt(input[index]);
        if (index < input.length - 1) {
            if (input[index + 1].equals("$")) {
                index += 2;
                n.left = deserializeUtil(input);
                n.right = deserializeUtil(input);
            } else {
                index++;
            }
        }
        return n;
    }
Deserialize Tree using preorder DFS
@param data
@return
src/com/interview/tree/SerializeDeserializeBinaryTree.java