这段代码递归的终止条件在哪里?没找到return啊!看不明白
class Solution {
List<List<Integer>> ans = new LinkedList<>();
LinkedList<Integer> track = new LinkedList<>();
public List<List<Integer>> subsetsWithDup(int[] nums) {
Arrays.sort(nums);
process(nums,0);
return ans;
}
/**
* 回溯算法
*/
public void process(int[]nums,int index){
ans.add(new LinkedList<>(track));
//选择列表,也就是决策列表
for(int i = index;i < nums.length;i++){
//剪枝操作,如果前面选择过了,就不选了 直接跳过
if(i > index && nums[i] == nums[i - 1]){
continue;
}
//选择
track.addLast(nums[i]);
process(nums,i + 1);
//撤销选择
track.removeLast();
}
}
}