要求:奇位置放前偶放后
思路:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if(head==nullptr||head->next==nullptr)return head;
ListNode *oddlast,*evenfirst=head->next;
ListNode *p=head;
bool odd=true;
while(p){
if(odd)oddlast=p;
odd=!odd;
if(!p->next)break;
ListNode *tmp=p->next;
p->next=p->next->next;
p=tmp;
}
oddlast->next=evenfirst;
return head;
}
};