234. Palindrome Linked List
来源:互联网 发布:苹果电脑安装软件 编辑:程序博客网 时间:2024/05/01 17:37
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?
思路:先确定链表的长度,然后将链表右半段反转,进行值对比,在把右半段反转回来。
<span style="font-size:14px;">/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:bool isPalindrome(ListNode* head) {int count = 0;ListNode* p = head;while (p){count++;p = p->next;}if (count <= 1)return true;p = head;for (int i = 0; i < count/2 -1; i++)p = p->next;ListNode* q = NULL;if ((count & 1) == 1){q = p->next->next;}else{q = p->next;}q = reverseList(q);p = head;while (p && q){if (p->val == q->val){p = p->next;q = q->next;}else{return false;}}reverseList(q);return true;}ListNode* reverseList(ListNode* head) {//链表反转算法,在206. Reverse Linked Listif (head == NULL)return head;ListNode *p, *q, *r;p = NULL;q = head;r = head->next;while (r){q->next = p;p = q;q = r;r = r->next;}q->next = p;return q;}};</span>
0 0
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome (Linked List)
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- Codeforces Round #343 (Div. 2) B. Far Relative’s Problem(O(1)的线段标记)
- redis hash结构及命令详解
- Spring auto wire(自动装配) 的 五种方式
- Hive日志分析案例二
- Android AsynTask
- 234. Palindrome Linked List
- Unexpected text found in layout file
- redis中的事务
- iOS开发中代码块的使用
- poj 3667 hotel
- Learning Python-the third chapter
- iOS中delegate代理对象使用weak和assign哪个
- 初识Spring
- 上机作业2-2