鍊錶的回文結構練習

2021-07-27 08:45:16 字數 744 閱讀 6128

請編寫乙個函式,檢查鍊錶是否為回文。

給定乙個鍊錶listnode* phead,請返回乙個bool,代表鍊錶是否為回文。

測試樣例:

返回:true

返回:false

回文結構,空間複雜度為o(1)的做法,首先利用快慢兩個指標找到鍊錶的中間點,之後將鍊錶中間點之後的鍊錶翻轉,之後比較前面和後面的鍊錶,如果全部相等返回true,如果不是返回false,理論上之後還應該恢復鍊錶,但是要是判斷回文結構可以不還原,**如下:

/*

struct listnode

};*/

class palindrome

else

if(!fast->next)

else

}listnode* temp=phead;

while(afterhead)

return

true;

}void reverselist(listnode* head,listnode* &afterhead)

listnode* pre=prehead;

listnode* next=head->next;

while(next)

head->next=pre;

afterhead=head;

prehead->next->next=null;//讓翻轉後鍊錶最後乙個元素指向空。

}};

鍊錶回文結構

對於乙個鍊錶,請設計乙個時間複雜度為o n 額外空間複雜度為o 1 的演算法,判斷其是否為回文結構。給定乙個鍊錶的頭指標head,請返回乙個bool值,代表其是否為回文結構。思路 實現 public class palindromelist 此時slow位於鍊錶中間,開始反轉鍊錶slow後面的部分 ...

鍊錶回文結構

對於乙個鍊錶,請設計乙個時間複雜度為o n 額外空間複雜度為o 1 的演算法,判斷其是否為回文結構。給定乙個鍊錶的頭指標a,請返回乙個bool值,代表其是否為回文結構。保證鍊錶長度小於等於900。測試樣例 1 2 2 1返回 true解題思路 1 找到鍊錶的中點,2 翻轉後半部分的鍊錶節點 3 依次...

鍊錶的回文結構

題目描述 對於乙個鍊錶,請設計乙個時間複雜度為o n 額外空間複雜度為o 1 的演算法,判斷其是否為回文結構。給定乙個鍊錶的頭指標a,請返回乙個bool值,代表其是否為回文結構。保證鍊錶長度小於等於900。測試樣例 1 2 2 1 返回 true 大體思路 通過快慢指標法得到mid 慢的依次存入棧 ...