1.快慢指標
找中點(注意奇偶)
分開反轉後半鏈
比較(以後半鏈為主)
class
solution
listnode *cur=low-
>next;
//後半鏈當前指標
listnode *pre=null;
//用於反轉 摘掉結點 頭插法
low-
>next=null;
//斷鏈
low=head;
//重置low
//反轉
while
(cur)
//注意結束條件
//比較判斷
while
(pre)
//此時pre在後半鏈第乙個
return
true;}
};
2.利用動態陣列(向量)
將節點的值存入向量中,從兩端開始遍歷,不等則false
**:
class
solution
int i=0;
int j=list.
size()
-1;while
(ireturn
true;}
};
兩種方法效率對比:
力扣 234 回文鍊錶
一 題目描述 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 二 解題思路 1 先找到鍊錶的中間節點。2 對中間結點的後半部分進行逆置。3 從鍊錶的頭節點和逆置之後的新頭節點進行比較即可。注意 鍊錶的長度為奇數個節點和偶數個節點...
力扣(LeetCode)234 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 尋找中間結點,然後將後半部分鍊錶倒置,後半部分鍊錶長度是小於或等於原鍊錶的,所以根據後半部分鍊錶來確定對比迴...
力扣 leetcode 234 回文鍊錶
判斷乙個鍊錶是否是回文鍊錶 並用 o n 時間複雜度和 o 1 空間複雜度解決此題?示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 用快慢指標找到鍊錶的中點,對後半部分的鍊錶就地逆置,再進行比較 definition for singly linked li...