初級演算法 回文鍊錶

2021-08-30 02:35:33 字數 1425 閱讀 2439

請判斷乙個鍊錶是否為回文鍊錶。

示例 1:

輸入: 1->2

輸出: false

示例 2:

輸入: 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 輸...