LeetCode 234. Palindrome Linked List判断链表是否回文
2016-07-10 19:53
393 查看
/[b]************************************************************************[/b]
* 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?
[b]************************************************************************[/b]/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
* 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?
[b]************************************************************************[/b]/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution { public: //find the mid in the List ListNode* findMid(ListNode* head) { ListNode *slow=head,*fast=head; while (fast&&fast->next) { fast=fast->next->next; slow=slow->next; } return slow; } //reverse the hafl List ListNode* reverse(ListNode* head) { ListNode *pre=head;ListNode* cur=pre->next; pre->next=NULL; while (cur) { ListNode *nxt=cur->next; cur->next=pre; pre=cur; cur=nxt; } return pre; } bool isPalindrome(ListNode* head) { if (head==NULL||head->next==NULL) return true; ListNode *mid=findMid(head); ListNode *pre=reverse(mid); while (pre) { if (pre->val!=head->val) return false; pre=pre->next; head=head->next; } return true; } };
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解