package main import "fmt" type ListNode struct { Val int Next *ListNode } func isPalindrome(head *ListNode) bool { var vals []int for ; head != nil; head = head.Next { vals = append(vals, head.Val) } n := len(vals) for i, v := range vals[:n/2] { if v != vals[n-1-i] { return false } } return true } func main() { node := &ListNode{Val:1} node.Next = &ListNode{Val:2} node.Next = &ListNode{Val:2} node.Next = &ListNode{Val:1} fmt.Println(isPalindrome(node)) }