328奇偶鍊錶(單鏈表基本操作)

2021-10-13 06:07:10 字數 1007 閱讀 9649

1、題目描述

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

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

說明:2、示例

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

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

3、題解

基本思想:單鏈表的基本操作,head是偶鍊錶的頭,p是偶鍊錶的尾,head2是奇鍊錶的頭,q是奇鍊錶的尾,cur指向當前節點,nextnode指向下乙個節點,如果cur當前節點是偶節點則加入偶鍊錶的尾端,否則加入奇鍊錶的尾端。

#include#include#include#includeusing namespace std;

struct listnode

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

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

};void init_listnode(listnode* head, vectorvec)

listnode* p;

p = head;

p->val = vec[0];

for (int i = 1; i < vec.size(); i++) }

class solution

else

i++;

cur=nextnode;

}p->next=head2;

return head;

}};int main()

; init_listnode(head, vec);

listnode* res=solute.oddevenlist(head);

while(res)

return 0;

}

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 ...