Only walk half the list when reversing