给定一个数组，请编写一个函数，将数组中的所有非零元素移动到左侧，将所有零元素移动到右侧，并将新数组返回。
[0, 1, 0, 3, 12]
可以使用快慢指针法，一个指针遍历数组，记录非零元素，另一个指针指向已经处理好的末尾，将非零元素赋值到末尾指针所在位置，最后将末尾之后的元素设为0即可。

代码如下：

```
def move_zeroes(nums):
    slow = 0
    for fast in range(len(nums)):
        if nums[fast] != 0:
            nums[slow] = nums[fast]
            slow += 1

    for i in range(slow, len(nums)):
        nums[i] = 0

    return nums
```

调用函数：

```
nums = [0, 1, 0, 3, 12]
print(move_zeroes(nums))  # [1, 3, 12, 0, 0]
```