Java杨辉三角数组越界

图片说明

package com.student.play;

import java.util.ArrayList;
import java.util.List;

class Solution {
    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> triangle = new ArrayList<List<Integer>>();

        if (numRows == 0) {
            return triangle;
        }

        triangle.add(new ArrayList<>());
        triangle.get(0).add(1);

        for (int rowNum = 1; rowNum < numRows; rowNum++) {
            List<Integer> row = new ArrayList<>();//当前行
            List<Integer> prevRow = triangle.get(rowNum-1);//上一行

            row.add(1);

            for (int j = 1; j < rowNum; j++) {
                row.add(prevRow.get(j-1) + prevRow.get(j));
            }

            row.add(1);
        }
        return triangle;    
    }

    public static void main(String[] args) {
        int numRows = 5;
        generate(numRows);
    }
}

row.add(1);
后面加上
triangle.add(row);

另外main
        int numRows = 5;
        List<List<Integer>> list = generate(numRows);
                for (List<Integer> l : list)
                {
                    for (Integer i : l)
                    {
                        System.out.print(i + " ");
                    }
                    System.out.println("");
                }

楼上说的对,但triangle.add(row);只能加一个,不要row.add(1);后面都加