234. Palindrome Linked List
来源:互联网 发布:javassm开源项目源码 编辑:程序博客网 时间:2024/06/06 01:32
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?
翻译:给定一个链表,判断是否是回文。
方法一:使用数组 o(n)
方法二:使用栈,从左到右遍历链表,压栈。出栈判断o(n/2)
方法三:使用变量,翻转后半部分的链表。
class Solution{public:bool isPalindRome(ListNode *head){if(head==NULL || head->next==NULL)return true;ListNode* n1=head;ListNode* n2=head;if(n1->next->next==NULL){n2=n1->next;if(n2->val==n1->val)return true;elsereturn false;}while(n2->next!=NULL && n2->next->next!=NULL){n1=n1->next;n2=n2->next->next;}n2=n1->next;ListNode* n3=NULL;n1->next=NULL; //将中间的元素的next指向空。while(n2!=NULL){n3=n2->next;n2->next=n1;n1=n2;n2=n3;} //将后半部分进行翻转n2=head; //原链表第一个元素while(n1!=NULL && n2!=NULL) //n1表示原链表最后一个元素{if(n1->val!=n2->val)return false;n1=n1->next;n2=n2->next;}return true;}};
阅读全文
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
- 关于mysql的单机多实例方案
- 面试准备
- CF #437
- tablayout学习笔记
- Kattis
- 234. Palindrome Linked List
- 【poj 2407】 Relatives 【Waterloo local 2002.07.01】
- 将图片保存为h5py文件
- python 条件判断
- C语言文件读写练习:从键盘读入若干字符,并逐个将这些字符写入文件中,直至输入"#"结束。再将这些字符从文件中读出并显示到屏幕上。
- html web页面锚点的设置
- B
- 16_反转链表
- 盗链和反盗链