/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func isPalindrome(head *ListNode) bool {
	l1, l2 := make([]int, 0), make([]int, 0)
	n := 0
	for curr := head; curr != nil; curr, n = curr.Next, n+1 {
		l1, l2 = append(l1, curr.Val), append(l2, curr.Val)
	}
	for i := 0; i < n/2; i++ {
		if l1[i] != l2[n-1-i] {
			return false
		}
	}
	return true
}