public String convert(String s, int nRows) {
        List<List<Character>> matrix = new ArrayList<List<Character>>();
        for(int i = 0; i < nRows; i++){
            matrix.add(new ArrayList<Character>());
        }

        int index = 0;
        while(index < s.length()){
            for(int i = 0; i < nRows; i++){
                if(index >= s.length()) break;
                matrix.get(i).add(s.charAt(index));
                index++;
            }

            for(int i = nRows - 2; i >= 1; i--){
                if(index >= s.length()) break;
                matrix.get(i).add(s.charAt(index));
                index++;
            }
        }

        StringBuilder result = new StringBuilder();
        for(int i = 0; i < nRows; i++){
            for(int j = 0; j < matrix.get(i).size(); j++){
                result.append(matrix.get(i).get(j));
            }
        }
        return result.toString();
    }