leetcode之234回文鍊錶

2021-09-10 06:33:04 字數 495 閱讀 7536

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

示例 1:

輸入: 1->2

輸出: false

示例 2:

輸入: 1->2->2->1

輸出: true

高階:你能否用 o(n) 時間複雜度和 o(1) 空間複雜度解決此題?

此題分三步進行:第一步先找出中間節點,第二步從中間節點開始反轉,第三步比較後面部分反轉後與前面部分是否相等,**如下:

class solution 

listnode prev = null;//鍊錶原地反轉

while(p!= null)

//開始比較節點是否相同

listnode p1 = head;

listnode q1=prev;

while(p1!=null && q1!=null && p1.val==q1.val)

return q1==null;

}}

leetcode之234回文鍊錶Golang

這道題的限制是時間複雜度是o n 空間複雜度是o 1 所以我們不能使用常規的方法,常規的方法就是將鍊錶中的資料儲存在陣列中,然後通過陣列判斷是否是回文陣列,這自然很簡單 所以在本題,我們採用的思路就是將鍊錶的後面半部分反轉,然後再比較前面半部分和後面半部分是否相同 首先我們需要找到後面半部分,採用的...

LeetCode 234 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。definition for singly linked list.struct listnode bool ispalindrome struct listnode head 示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 要...

leetcode 234 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false 示例 2 輸入 1 2 2 1輸出 true 解法1 使用棧 使用快慢指標找中點,原理是每次快指標走兩步,慢指標走一步,等快指標走完時,慢指標的位置就是中點。我們還需要用棧,每次慢指標走一步,都把值存入棧中,等到達中點時,鍊錶的前...