В стеке нет операции удаления последнего элемента. В односвязном списке это вообще максимально затратная операция, зачем она?
Дальше, в тесте ты эту функцию не используешь.
Функция в любом случае реализована в корне неверно.
Нужно учитывать граничный случай size == 1 и обнулять head. Нужно итерироваться (size - 2) раз, чтобы встать на предпоследний элемент, и у него занулить next. Нужно брать value у элемента, следующего за тем, у которого обнуляется next. То есть у самого next'a.