Palindrome Linked List
来源:互联网 发布:今天美国非农数据 编辑:程序博客网 时间:2024/06/05 20:00
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?
Follow up:
Could you do it in O(n) time and O(1) space?
Subscribe to see which companies asked this question
思路:判断一个链表含有的数值是不是一个回文的链表。可以使用快慢指针,找到一个链表的中间节点。将后半部分的链表进行逆序。而后再从head开始进行遍历,一一比对前后两部分的val值是不是相等的。当循环跳出的时候,如果遍历的指针为NULL,则说明整个链表是回文的,否则的话则说明在遍历的过程中遇到了前面部分的val和后面的val不一样的情况,则此时链表不是回文的。
/** * 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) { if(head==NULL || head->next==NULL) return true; ListNode *slow=head,*fast=head->next; while(fast&&fast->next) { slow=slow->next; fast=fast->next->next; } //slow后面的位置为链表的后半个部分 fast=slow->next; slow->next=NULL; slow=head; ListNode *pre=NULL; while(fast) { ListNode *tmp=fast->next; fast->next=pre; pre=fast; fast=tmp; } while(pre&&slow&&pre->val==slow->val) { pre=pre->next; slow=slow->next; } return pre?false:true; }};
0 0
- Palindrome Linked List
- Palindrome Linked List
- Palindrome Linked List
- leetoj Palindrome Linked List
- Palindrome Linked List
- Palindrome Linked List
- Palindrome Linked List
- Palindrome Linked List
- Leetcode47: Palindrome Linked List
- Palindrome Linked List
- 234Palindrome Linked List
- LeetCode Palindrome Linked List
- LeetCode - Palindrome Linked List
- leetcode: Palindrome Linked List
- Palindrome Linked List 234
- Palindrome Linked List
- Palindrome Linked List
- Leetcode: Palindrome Linked List
- 互联网时代,人人均可开启自助数据分析之旅
- 关于java.lang.IllegalArgumentException: View not attached to window manager 错误的分析
- 设定特定域用户或者组无限次数将计算机加入域
- Leetcode 237. Delete Node in a Linked List
- 华为正在力挺的NB-IoT是什么鬼!
- Palindrome Linked List
- Java实现冒泡排序算法
- cpp-netlib在VS2013下编译
- poj 2115 C Looooops (扩展欧几里得)
- 【数据结构学习】相关学习资源汇总
- php引用赋值& 和传递赋值
- JavaScript Core binding
- Arcsde10.0服务启动后停止
- log4