Move Zeroes: Interactive Visualizer
Push non-zero values toward the front with a write pointer, then fill the tail with zeroes.