您的位置:首页 > 编程语言

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

2017-09-22 01:55 525 查看
题目:

    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,所以不能像常规的那么想。查看解决方案,解决方案提到了慢指针和快速指针,突然想到之前判断是否循环时也用到了慢指针和快速指针。把后半段的原链表反转,然后和前半段做比较。先判断链表中是否存在节点,或者只存在一个节点,然后再反转,从后半段链表的第一个节点后的一个节点开始。反转之后前后对比。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: