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
- 234. 迴文連結串列
- 迴文連結串列
- Leetcode 234. 迴文連結串列 快慢指標+連結串列逆序實現O(n)時間複雜度且O(1)空間複雜度LeetCode指標時間複雜度
- 每天一道leetcode234-迴文連結串列LeetCode
- 判斷迴文連結串列
- 連結串列-迴圈連結串列
- 請判斷一個連結串列是否為迴文連結串列。
- 連結串列4: 迴圈連結串列
- leetcode演算法題解(Java版)-7-迴圈連結串列LeetCode演算法Java
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- Leetcode_86_分割連結串列_連結串列LeetCode
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- LeetCode-連結串列LeetCode
- 迴圈連結串列
- LeetCode 連結串列解題彙總 Java版LeetCodeJava
- LeetCode連結串列專題LeetCode
- leetcode 反轉連結串列LeetCode
- LeetCode 86 ——分隔連結串列LeetCode
- [Golang]力扣LeetBook—初級演算法—連結串列—迴文連結串列(快慢指標)Golang力扣演算法指標
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 連結串列與遞迴遞迴
- leetcode 92 反轉連結串列ⅡLeetCode
- LeetCode-143-重排連結串列LeetCode
- LeetCode 86. 分隔連結串列LeetCode
- 資料結構與演算法 | 迴文連結串列檢測資料結構演算法
- 單向迴圈連結串列
- 2024/12/2【連結串列】LeetCode 142 環形連結串列 II 【X】LeetCode
- LeetCode 143 重排連結串列 HERODING的LeetCode之路LeetCode
- Java單連結串列反轉圖文詳解Java
- 2024/12/1 【連結串列】 LeetCode 面試題 02.07. 連結串列相交LeetCode面試題
- 【LeetCode連結串列#9】圖解:兩兩交換連結串列節點LeetCode圖解
- leetcode:21. 合併兩個有序連結串列(連結串列,簡單)LeetCode
- [連結串列]leetcode138-複製帶隨即指標的連結串列LeetCode指標
- [leetcode 92] 反轉連結串列 IILeetCode
- leetcode206. 反轉連結串列LeetCode
- leetcode 206. 反轉連結串列LeetCode
- LeetCode入門指南 之 連結串列LeetCode