Given the head of a singly linked list, return true if it is a palindromeor false otherwise.
как бы задача изи(сравниваем начальный список и перевернутый)
но здесь есть классы и кое-что мне не понятно 
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def isPalindrome(self, head: Optional[ListNode]) -> bool:
        res = []
        while (head):
            res.append(head.val)
            head = head.next
        if res==res[::-1]:
            return True
        False
решение немного подсмотрел,  чтобы понять логику, а далее решил сам и не понял вот эти строчки 
res.append(head.val)
 head = head.next
я думаю, что мы добавляем текущее число 
head.val, а далее двигаемся вперед 
head.next,
но зачем добавлять, почему нельзя стразу двигаться вперед?