234. 回文链表

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

posted @ 2024-06-07 22:28  gdut17_2  阅读(12)  评论(0)    收藏  举报