LeetCode入門訓練 回文鍊錶

2021-10-08 11:42:38 字數 789 閱讀 1530

一種是直接將元素壓入棧 然後依次退棧和鍊錶相比

第二種是快慢指標,fast兩格一跳,slow 一格一跳。在後半壓入棧。與鍊錶相比

第三種 直接在後半段取反 比較完後還原

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

return p;

} bool ispalindrome

(listnode* head)

listnode *fast = head;

listnode *slow = head;

while

(fast-

>next != null && fast-

>next-

>next != null)

if(fast-

>next !=null)

listnode *newhead = slow-

>next;

slow-

>next = null;

newhead =

reverselist

(newhead)

; listnode *p = head;

listnode *q = newhead;

while

(p != null && q != null)

return

true;}

};

回文鍊錶 LeetCode

請判斷乙個鍊錶是否為回文鍊錶。你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?輸入 1 2 2 1 輸出 true 思路 如何判斷回文,從中間位置開始向兩邊不斷判斷相等並移動。關鍵點一 如何找到鍊錶中間位置。採用兩個指標,指標p移動兩格,指標mid移動一格,當p移動終點時,指標mid所在...

leetcode 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false示例 2 輸入 1 2 2 1 輸出 true高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?查詢單鏈表中點 function findmid node let midnode node node node.ne...

LeetCode 回文鍊錶

題目 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 1 獲取鍊錶的長度 int length 0 listnode node head if null head.next elsewhile null node node.ne...