力扣c語言實現 328 奇偶鍊錶

2021-09-23 15:39:53 字數 1444 閱讀 6757

原題目連線

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

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

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

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

//2018-12-15   time 14:21

struct listnode*

oddevenlist

(struct listnode* head)

typedef

struct listnode list;

list* p1 = head;

list* odd_head = p1;

list* p2 = head->next;

list* even_list =

malloc

(sizeof

(list));

even_list->next =

null

; p1->next = p2->next;

p2->next = even_list->next;

even_list->next = p2;

p1 = p1->next;

if(p1->next)

else

while

(p1->next&&p2->next)

p1->next = even_list->next;

return odd_head;

}

//2021-05-05

struct listnode*

oddevenlist

(struct listnode* head)

node *oddhead = head;

node *evenhead = head->next;

node *pfirst = head;

node *psecond = head->next;

while

(psecond->next)

//psecond必不為空

psecond->next = pfirst->next;

psecond = psecond->next;

} pfirst->next = evenhead;

return oddhead;

}

力扣 328 奇偶鍊錶

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

力扣解題思路 328 奇偶鍊錶

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

力扣 奇偶鍊錶

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