leetcode 234.迴文連結串列 Java
題目連結
https://leetcode-cn.com/problems/palindrome-linked-list/
描述
請判斷一個連結串列是否為迴文連結串列。
進階:
你能否用 O(n) 時間複雜度和 O(1) 空間複雜度解決此題?
示例
示例 1:
輸入: 1->2
輸出: false
示例 2:
輸入: 1->2->2->1
輸出: true
初始程式碼模板
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isPalindrome(ListNode head) {
}
}
程式碼
一邊遍歷,一遍反轉前一半的連結串列,如果需要還原連結串列的話,只要重新翻準一下即可。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isPalindrome(ListNode head) {
if (head == null) {
return true;
}
ListNode slow = head;
ListNode fast = head;
ListNode node = null;
while (fast != null && fast.next != null) {
fast = fast.next.next;
ListNode slowNext = slow.next;
slow.next = node;
node = slow;
slow = slowNext;
}
//節點數目是奇數
if (fast != null) {
slow = slow.next;
}
while (slow != null) {
if (slow.val != node.val) {
return false;
}
slow = slow.next;
node = node.next;
}
return true;
}
}
相關文章
- LeetCode 234. 迴文連結串列LeetCode
- Leetcode 234. 迴文連結串列 快慢指標+連結串列逆序實現O(n)時間複雜度且O(1)空間複雜度LeetCode指標時間複雜度
- 連結串列-迴圈連結串列
- 【LeetCode】 Rotate List 迴圈連結串列LeetCode
- 連結串列4: 迴圈連結串列
- 每天一道leetcode234-迴文連結串列LeetCode
- Leetcode_86_分割連結串列_連結串列LeetCode
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- [Golang]力扣LeetBook—初級演算法—連結串列—迴文連結串列(快慢指標)Golang力扣演算法指標
- leetcode演算法題解(Java版)-7-迴圈連結串列LeetCode演算法Java
- 資料結構與演算法 | 迴文連結串列檢測資料結構演算法
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- LeetCode-連結串列LeetCode
- 單向迴圈連結串列
- Java單連結串列反轉圖文詳解Java
- LeetCode 連結串列解題彙總 Java版LeetCodeJava
- LeetCode連結串列專題LeetCode
- leetcode 反轉連結串列LeetCode
- LeetCode 86 ——分隔連結串列LeetCode
- 單鏈迴圈連結串列(初版
- 複習下C 連結串列操作(雙向迴圈連結串列,查詢迴圈節點)
- 資料結構之迴圈連結串列資料結構
- [連結串列]leetcode138-複製帶隨即指標的連結串列LeetCode指標
- 【LeetCode連結串列#9】圖解:兩兩交換連結串列節點LeetCode圖解
- Java 單連結串列逆序Java
- leetcode 92 反轉連結串列ⅡLeetCode
- LeetCode 86. 分隔連結串列LeetCode
- 單向迴圈連結串列大綱
- Linked List Cycle leetcode java (連結串列檢測環)LeetCodeJava
- leetcode:21. 合併兩個有序連結串列(連結串列,簡單)LeetCode
- 環形連結串列_相交連結串列_多數元素(java語言)Java
- 《Cracking the Coding Interview程式設計師面試金典》----迴文連結串列View程式設計師面試
- 連結串列-雙向連結串列
- 詳細分析連結串列中的遞迴性質(Java 實現)遞迴Java
- leetcode題目解析(js)--連結串列LeetCodeJS
- LeetCode入門指南 之 連結串列LeetCode
- 【Leetcode】61.旋轉連結串列LeetCode