Leecode回文鍊錶

2021-09-13 22:09:44 字數 594 閱讀 7848

貼**

class solution 

string ss= s;

reverse(s.begin(),s.end());

if(ss==s)

return 1;

return 0;

}};

我自己的思路比較無腦,就是讀出來轉成string反轉比較。

然後看到乙個用棧來做的**,之前也有想到,但是感覺對於121這種有些麻煩。

class solution 

if(!fast -> next)

s.pop();

while(slow -> next)

return true;

}};

這個很有意思,用了兩個指標,乙個慢指標,每次後移乙個節點,乙個快指標每次後移兩個節點,這樣當快指標到鍊錶為的時候,慢指標只走了一半。

如果鍊錶有偶數個節點,那麼,快指標移動到了倒數第二個節點,慢指標正好一半,接下來就是簡單的比較,出棧。

如果有奇數個節點,那麼快指標到最後乙個節點2n+1,慢指標到n+1,這時pop掉最上面乙個資料,然後同上。

很有意思。

leecode分割鍊錶

給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 解題思路 該題相當於乙個分類問題,基於給定引數x分大和小。基於示例解...

鍊錶 回文鍊錶

在leetcode上有兩個題 234.回文鍊錶 面試題 02.06.回文鍊錶 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?遍歷一遍鍊錶得到值的陣列 判斷陣列是...

初級 鍊錶 回文鍊錶

題目 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 原思路 將鍊錶遍歷一遍,存入陣列,但空間複雜度為o n 不符合要求 正確思路 用快慢陣列找出鍊錶的中間...