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,所以不能像常规的那么想。查看解决方案,解决方案提到了慢指针和快速指针,突然想到之前判断是否循环时也用到了慢指针和快速指针。把后半段的原链表反转,然后和前半段做比较。先判断链表中是否存在节点,或者只存在一个节点,然后再反转,从后半段链表的第一个节点后的一个节点开始。反转之后前后对比。
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编程练习 - Linked List Cycle学习心得
- LeetCode编程练习 - Remove Linked List Elements学习心得
- LeetCode编程练习 - Reverse Linked List学习心得
- LeetCode编程练习 - Delete Node in a Linked List学习心得
- LeetCode编程练习 - Remove Duplicates from Sorted List学习心得
- LeetCode编程练习 - Intersection of Two Linked Lists学习心得
- LeetCode编程练习 - Rotate Array学习心得
- LeetCode编程练习 - Add Binary学习心得
- LeetCode编程练习 - Add Digits学习心得
- LeetCode编程练习 - Plus One学习心得
- LeetCode编程练习 - Longest Harmonious Subsequence学习心得
- LeetCode编程练习 - Sqrt(x)学习心得
- LeetCode编程练习 - Ugly Number学习心得
- leetcode:234 Palindrome Linked List-每日编程第四十四题
- LeetCode编程练习 - Best Time to Buy and Sell Stock学习心得
- LeetCode编程练习 - Missing Number学习心得 4000
- LeetCode编程练习 - Happy Number学习心得
- LeetCode编程练习 - Power of Three学习心得
- LeetCode编程练习 - Merge Two Sorted Lists学习心得
- LeetCode编程练习 - Count Primes学习心得