/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func isPalindrome(head *ListNode) bool {
nums := []int{}
for head != nil {
nums = append(nums, head.Val)
head = head.Next
}
for i:=0; i<len(nums)/2; i++ {
if nums[i] != nums[len(nums)-i-1] {
return false
}
}
return true
}
func isPalindrome2(head *ListNode) bool {
stack := []int{}
p := head
for head != nil {
stack = append(stack, head.Val)
head = head.Next
}
i := len(stack)-1
for i>=0 {
if stack[i] != p.Val {
return false
}
i--
p=p.Next
}
return true
}