/** * 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 }