В симуляторе строку cells[head] = write переставили после сдвига головки. Что произойдёт?
cells[head] = write