請判斷乙個鍊錶是否為回文鍊錶。
示例 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 使用棧 使用快慢指標找中點,原理是每次快指標走兩步,慢指標走一步,等快指標走完時,慢指標的位置就是中點。我們還需要用棧,每次慢指標走一步,都把值存入棧中,等到達中點時,鍊錶的前...