leetcode系列(77)Palindrome Linked List
来源:互联网 发布:雅思7分有多难 知乎 编辑:程序博客网 时间:2024/06/03 01:42
Given a singly linked list, determine if itis a palindrome.
解答:快慢指针split链表,需要处理链表长度为奇数(fast肯定是在最后一个节点停止)和长度为偶数(fast指针肯定是在nullptr停止)两种情况;然后reverse and compare。
class Solution {public: bool isPalindrome(ListNode* head) { if (head == nullptr || head->next == nullptr) { return true; } // split the list ListNode* slow = head; ListNode* fast = head; while (fast != nullptr && fast->next != nullptr) { slow = slow->next; fast = fast->next->next; } ListNode* ptr = (fast == nullptr ? slow : slow->next); // reverse another half ListNode* pre = nullptr; auto cur = ptr; while (cur != nullptr) { auto post = cur->next; cur->next = pre; pre = cur; cur = post; } ptr = pre; // compare two half list for (ptr = pre ; ptr != nullptr; ptr = ptr->next, head = head->next) { if (ptr->val != head->val) { return false; } } return true; }};
0 0
- leetcode系列(77)Palindrome Linked List
- <leetcode系列> Palindrome Linked List
- LeetCode Palindrome Linked List
- LeetCode - Palindrome Linked List
- leetcode: Palindrome Linked List
- Leetcode: Palindrome Linked List
- leetcode:Palindrome Linked List
- [LeetCode] Palindrome Linked List
- LeetCode || Palindrome Linked List
- 【leetcode】Palindrome Linked List
- LeetCode-Palindrome Linked List
- Leetcode|Palindrome Linked List
- [leetcode] Palindrome Linked List
- [LeetCode]Palindrome Linked List
- [Leetcode]Palindrome Linked List
- [leetcode] Palindrome Linked List
- [leetCode] Palindrome Linked List
- LeetCode----Palindrome Linked List
- 一行代码突破百度网盘限制下载大文件
- BufferedReader.readLine()和DataInputStream.readUTF()
- ZJU-c
- 从头到尾彻底理解KMP
- OpenWRT开发之——研究包的Makefile
- leetcode系列(77)Palindrome Linked List
- USACO-Section 3.1 Contact(枚举)
- 9. Swift 中的函数
- 【校内互测】陈老师搬书
- Python注释
- Java读取properties文件中文乱码问题解决
- hdu1213 How Many Tables
- HDU1754线段树
- 排版题 3