對於乙個鍊錶,請設計乙個時間複雜度為o(n),額外空間複雜度為o(1)的演算法,判斷其是否為回文結構。
給定乙個鍊錶的頭指標a,請返回乙個bool值,代表其是否為回文結構。保證鍊錶長度小於等於900。
測試樣例:
先使用快慢指標法,設定兩個指標fast和slow,遍歷鍊錶,fast指標速度是slow指標的兩倍,從而找到鍊錶的中間結點。之後將後半截鍊錶逆置。最後從頭尾向中間掃瞄,對比每個元素是否相等,如果都相等,則是回文數,否則不是回文數。
/*
struct listnode
};*/
class
palindromelist
//反轉鍊錶
listnode* prev =
null
; listnode* next;
while
(slow)
//判斷是否是回文結構
while
(prev)
}return
true;}
};
鍊錶的回文結構(牛客)
鍊錶的回文結構 題目描述 對於乙個鍊錶,請設計乙個時間複雜度為o n 額外空間複雜度為o 1 的演算法,判斷其是否為回文結構。給定乙個鍊錶的頭指標a,請返回乙個bool值,代表其是否為回文結構。保證鍊錶長度小於等於900。測試樣例 1 2 2 1 返回 true 解析 首先建立乙個傀儡結點,將原鍊錶...
鍊錶回文結構
對於乙個鍊錶,請設計乙個時間複雜度為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 依次...