List<List<Integer>> res = new ArrayList<ArrayList<Integer>>(); //为什么会报错
List<List<Integer>> res = new ArrayList<List<Integer>>(); //这样就可以,当然不写里面的也行
ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); //这样为啥就行
<T>
T得一样, List和ArrayList不是同一个类
你应该这么写
List<? extends List<Integer>> res = new ArrayList<ArrayList<Integer>>();