328 奇偶鍊錶 鍊錶一分為二及細節處理

2021-10-24 04:43:32 字數 995 閱讀 8068

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。

請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o(1),時間複雜度應為 o(nodes),nodes 為節點總數。

示例 1:

輸入: 1->2->3->4->5->null

輸出: 1->3->5->2->4->null

示例 2:

輸入: 2->1->3->5->6->4->7->null 

輸出: 2->3->6->7->1->5->4->null

說明:應當保持奇數節點和偶數節點的相對順序。

鍊錶的第乙個節點視為奇數節點,第二個節點視為偶數節點,以此類推。

/**

* definition for singly-linked list.

* struct listnode

* listnode(int x) : val(x), next(nullptr) {}

* listnode(int x, listnode *next) : val(x), next(next) {}

* };

*/class solution

oddptr->next = evenhead.next; //將奇數節點鍊錶和偶數節點鍊錶連線

evenptr->next = null; //不要忘記將偶數鍊錶的末尾置空,否則可能會導致鍊錶有環

return head;

}};

1:為了不對偶數煉表頭節點單獨處理,引入棧節點避免記憶體分配。

2:偶數節點鍊錶最後一定要置空,否則遇到奇數個節點的鍊錶就會出問題,因為兩個鍊錶的最後都指向原鍊錶的最後乙個節點final,當奇偶鍊錶再連線的時候,就在final處偶數鍊錶自形成乙個環。

excel斜線表頭一分為二如何新增文字

新增方法 首先開啟需要進行操作的excel 選中指定單元格,輸入需要的文字 然後點選要分開的文字中間,按住 alt 回車 將文字分為兩行 最後用空格將指定文字推至右邊,調整行高即可。本教程操作環境 windows7系統 microsoft office excel2010版 dell g3電腦。在斜...

金色絲線將瞬間一分為二 樹狀陣列的使用

description 為了解開騎士木乃伊事件,久城一彌和布洛瓦警官來到了停屍間。停屍間裡有n具遺體,每具遺體都有乙個座標 x,y 由於停屍間的遺體擺放得橫平豎直,我們認為兩具遺體 xi,yi 和 xj,yj 得距離為 xi xj yi yj 負責停屍間的工人由於需要經常搬運遺體,所以對任意兩具遺體...

鍊錶?陣列?合二為一

大家都喜歡用陣列,因為陣列方便。但也有一些人喜歡用鍊錶,因為鍊錶能利用零散的記憶體空間。c 提供了鍊錶和陣列合二為一的可能 類和過載運算子。把鍊錶的頭指標作為類的成員,有參構造的時候,建立鍊錶 過載 運算子,使之像陣列 但是永遠不要忘記鍊錶和陣列最大的不同 鍊錶元素的記憶體單元是不連續的,因此無法通...