請判斷乙個鍊錶是否為回文鍊錶。示例 1:
輸入: 1->2示例 2:輸出: false
輸入: 1->2->2->1高階:輸出: true
你能否用 o(n) 時間複雜度和 o(1) 空間複雜度解決此題?
package com.linklist;
public class ispalindrome5
// listnode reverse = reverse(head, head.next);
// head.next = null;
// while (temp1 != null && reverse != null)
// if (temp1 != null || reverse != null)
// return false;
// return true;
// }
// // public listnode reverse(listnode a, listnode b)
// listnode tempnext = b.next;
// b.next = a;
// return reverse(b, tempnext);
// }
/* * 思路二:首先遍歷鍊錶得到長度,然後反轉一半的鍊錶,在這個過程找到左右指標的起點,需要分奇偶
*/public boolean ispalindrome(listnode head)
if (count == 1 || count == 0)
return true;
listnode itr2 = head;
int c = count % 2 == 0 ? count / 2 : (count / 2 + 1);
system.out.println("c:" + c);
while (c > 0)
system.out.println(itr2.val + " ");
listnode reverse = reverse(head, head.next, count / 2 - 1);
while (itr2 != null)
return true;
} public listnode reverse(listnode a, listnode b, int c)
if (b.next == null)
listnode tempnext = b.next;
b.next = a;
return reverse(b, tempnext, c - 1);
}}
初級 鍊錶 回文鍊錶
題目 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 原思路 將鍊錶遍歷一遍,存入陣列,但空間複雜度為o n 不符合要求 正確思路 用快慢陣列找出鍊錶的中間...
LeetCode初級演算法之鍊錶 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路一 借助外來的空間 這個題我的初步思路是借助外來的空間,也就不是o 1 的空間複雜度,那麼這個就比較簡單了,只...
初級演算法 鍊錶 環形鍊錶
給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。示例 2 輸...