/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if(!head || !head->next) return head;
int cnt=1; //计数位,用于判断奇偶数
ListNode*p=head;
ListNode*res1=new ListNode(-1),*m=res1, //存放奇数位链表
*res2=new ListNode(-1),*n=res2; //存放偶数位链表
while(p){
if(cnt%2){
m->next=p; //奇数
m=m->next;
}
else{
n->next=p; //偶数
n=n->next;
}
p=p->next;
++cnt;
}
m->next=res2->next;
n->next=NULL; //偶数位链表结尾
return res1->next;
}
};
328. 奇偶链表
最新推荐文章于 2024-04-11 21:31:41 发布