public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> res = new LinkedList<>();
if (nums.length <3)return res;
Arrays.sort(nums);
Integer preI=null ,preJ=null,preX=null;
for (int i=0;i<nums.length-2;i++){
if (preI == null || preI != nums[i]) preI = nums[i];
else if (nums[i] == preI){
continue;
}
for(int j=i+1;j<nums.length-1;j++){
if (preJ == null || preJ != nums[j]) preJ = nums[j];
else if (nums[j] == preJ){
continue;
}
for (int x=j+1;x<nums.length;x++){
if (preX == null || preX != nums[x]) preX = nums[x];
else if (nums[x] == preX){
continue;
}
if (nums[i]+nums[j]+nums[x] ==0){
LinkedList<Integer> linkedList = new LinkedList<>() ;
linkedList.add(nums[i]);
linkedList.add(nums[j]);
linkedList.add(nums[x]);
res .add(linkedList);
}
}
preX =null;
}
preJ = null;
}
return res;
}