鍊錶回文結構

2021-10-04 18:08:53 字數 717 閱讀 6338

對於乙個鍊錶,請設計乙個時間複雜度為o(n),額外空間複雜度為o(1)的演算法,判斷其是否為回文結構。

給定乙個鍊錶的頭指標a,請返回乙個bool值,代表其是否為回文結構。保證鍊錶長度小於等於900。

測試樣例:

1->2->2->1
返回:true
解題思路:

1、找到鍊錶的中點,

2、翻轉後半部分的鍊錶節點

3、依次比較是否一致,如果一致則為回文結構

實現**:

bool chkpalindrome(listnode* a) 

fast = slow->next;

slow->next = null;

while(fast)

fast->next = slow;

slow = fast;

fast = cur;

}fast = prev;

slow = a;

while(fast)

fast= fast->next;

slow= slow->next;

}return true;

}

執行結果:

鍊錶回文結構

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

鍊錶回文結構判斷

鍊錶回文結構判斷較簡單的做法是利用棧儲存鍊錶逆序序列,之後與列表正序序列 比較,如果一致,則說明是回文結構 這樣時間複雜度o n 空間複雜度o n 下面這種方法時間複雜度o n 空間複雜度o 1 其基本思路是把鍊錶右半部分反轉,然後同時從原始鍊錶的首尾同時向中間遍歷,比較每乙個位置對應的value,...

鍊錶的回文結構

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