LeetCode编程练习 - Palindrome Linked List学习心得

题目:

    Given a singly linked list, determine if it is a palindrome.

        Follow up:
        Could you do it in O(n) time and O(1) space?


    给定一个单独对的链表,确定它是否是一个回文(顺读和倒读一样)。

思路:
    也就是说第一个和最后一个相同,第二个和倒数第二个相同......只要判断是否相同即可。但突然考虑到链表里没有数组的长度Length,所以不能像常规的那么想。查看解决方案,解决方案提到了慢指针和快速指针,突然想到之前判断是否循环时也用到了慢指针和快速指针。把后半段的原链表反转,然后和前半段做比较。先判断链表中是否存在节点,或者只存在一个节点,然后再反转,从后半段链表的第一个节点后的一个节点开始。反转之后前后对比。
LeetCode编程练习 - Palindrome Linked List学习心得