Leetcode NO.234 Palindrome Linked List
来源:互联网 发布:葫芦娃爷爷 知乎 编辑:程序博客网 时间:2024/05/22 00:41
本题题目要求如下:
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?
算法很简单:
1,找到linkedlist的中点,
2,翻转左边的linkedlist或者右边的linkedlist均可,我是选择翻转右边的
3,然后比较
代码如下:
/** * 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 == nullptr or head->next == nullptr) { return true; } ListNode* tmp = head; int cnt = 0; while (tmp != nullptr) { tmp = tmp->next; ++cnt; } ListNode* prev; tmp = head; for (int i = 0; i < cnt / 2; ++i) { prev = tmp; tmp = tmp->next; } prev->next = nullptr; // reverse the linkedlist if (tmp->next != nullptr) { ListNode* cur = new ListNode(0); ListNode* after = tmp->next; cur->next = after; tmp->next = nullptr; while (after != nullptr) { after = after->next; cur->next->next = tmp; tmp = cur->next; cur->next = after; } } // compare these two linked list while (head != nullptr) { if (tmp->val != head->val) { return false; } tmp = tmp->next; head = head->next; } return true; }};
翻转链表的题目在我的博客里面也有详细的讲解和代码,可以直接查。。NO.206
0 0
- Leetcode NO.234 Palindrome Linked List
- LeetCode--No.234--Palindrome Linked List
- Palindrome Linked List leetcode 234
- 【LeetCode】234 Palindrome Linked List
- Palindrome Linked List (leetcode 234)
- leetcode 234: Palindrome Linked List
- leetcode[234]:Palindrome Linked List
- LeetCode 234Palindrome Linked List
- leetcode-234-Palindrome Linked List
- [Leetcode 234] Palindrome Linked List
- Leetcode #234 Palindrome Linked List
- [LeetCode 234] Palindrome Linked List
- Leetcode 234 Palindrome Linked List
- LeetCode(234)Palindrome Linked List
- leetcode 234: Palindrome Linked List
- [Leetcode]#234 Palindrome Linked List
- leetcode 234 Palindrome Linked list
- 【LEETCODE】234-Palindrome Linked List
- ScrollView 与 GridView冲突,控件显示中间
- java 多线程Echo server和client 例子
- knockout.js实例二~购物车
- 42Trapping Rain Water
- apk 反编译工具的使用
- Leetcode NO.234 Palindrome Linked List
- 在OEL 5.4 32bit上使用yum install命令遇到的问题
- kafka 学习笔记(四)之Python客户端
- uplooking-C语言基础
- WebClient在多线程、使用代理情况下 socket closed 问题的一个解决办法[htmlunit]
- .NET程序员学习书籍
- 利用HtmlUnit 模拟浏览器抓取网页数据
- HtmlUnit+Jsoup 解决爬虫无法解析执行javascript的问题
- myeclipse+maven实现多模块项目struts+spring+mybatis