給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。解題思路:該題相當於乙個分類問題,基於給定引數x分大和小。基於示例解題過程如下:你應當保留兩個分割槽中每個節點的初始相對位置。
示例:輸入: head = 1->4->3->2->5->2, x = 3
輸出: 1->2->2->4->3->5
大領頭羊(bighead)舉牌:羊年齡大於等於x跟我走**:小領頭羊(smallhead)舉牌:羊年齡小於x跟我來
x = 3
羊佇列:head = 1->4->3->2->5->2
羊群開始找頭領....
1 < x smallhead = 1
4 >=x bighead = 4
3 >=x bighead = 4->3
2 < x smallhead = 1->2
5 >=x bighead = 4->3->5
2 < x smallhead = 1->2->2
最後:小領頭羊接上大領頭羊
smallhead = 1->2->2->4->3->5
listnode* partition(listnode* head, int x)
else
pcur = pcur->next;
} pbigcur->next = null;
psmallcur->next = pbighead.next;
return psmallhead.next;
}
Leecode回文鍊錶
貼 class solution string ss s reverse s.begin s.end if ss s return 1 return 0 我自己的思路比較無腦,就是讀出來轉成string反轉比較。然後看到乙個用棧來做的 之前也有想到,但是感覺對於121這種有些麻煩。class sol...
反轉鍊錶(Leecode 206 92)
206 題目反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null解析 這題比較簡單,使用迭代反轉或者遞迴反轉都可以,這裡使用迭代反 使用pre cur next這三個指標分別儲存head結點的前乙個結點,cur儲存head結點 next儲存head結點的下乙個...
鍊錶分割問題
題目 編寫 以給定的x為基準值將鍊錶分割成兩部分,所有小於x的結點排在大於或等於x的結點之前。解法一 交換結點法,回想學習快速排序的時候,也是以基準值將一組數劃分成兩部分,小於基準值的排在前面,大於基準值的排在後半部分。因此解決這個問題也可以使用兩個指標。如果煉表頭結點開始遍歷,第乙個需要移動的結點...