C語言重構 328 奇偶鍊錶

2021-10-06 16:53:04 字數 1029 閱讀 3810

所有題目源**:git位址

題目

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

請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 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 ;

*/struct listnode*

oddevenlist

(struct listnode* head)

else

if(tag==1)

cur = cur-

>next;

} evennum-

>next = null;

//mix

oddnum-

>next = evenhead-

>next;

return oddhead-

>next;

}

複雜度計算

328 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null輸...

328 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null ...

328 奇偶鍊錶

題目描述 給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 ...