1 class Solution { 2 public void moveZeroes(int[] nums) { 3 if(nums == null){ 4 return; 5 } 6 7 // 遍历数组,把当前0与下一个非0元素进行交换 8 int n = nums.length; 9 int j= 0; 10 for(int i = 0; i < n; i++){ 11 if(nums[i] == 0){ 12 for(j = j + 1; j < n && nums[j] == 0; j++); // 查找下一个不为0的数字 13 if(j < n){ // 如果j < n, 交换nums[i] 和nums[j] 14 nums[i] = nums[j]; 15 nums[j] = 0; 16 }else{ 17 break; // 如果j >= n,说明0已经全被移动到了末尾 18 } 19 }else{ 20 j++; 21 } 22 23 } 24 } 25 }