拆分成奇数链表与偶数链表 ,最后合并即可
class Solution {
ListNode *oddEvenList(ListNode *head) {
if(head==nullptr||head->next==nullptr||head->next->next==nullptr)return head;
ListNode *odd = head;//奇数链表
ListNode *even = head->next;//偶数链表
ListNode *curOdd = odd;//指向奇数结点
ListNode *curEven = even;//指向偶数结点
while(curOdd&&curOdd->next) {
curOdd->next = curOdd->next->next;
if(curOdd->next==nullptr)break;
curOdd = curOdd->next;
curEven->next= curEven->next->next;
curEven = curEven->next;
}
curOdd->next = even;//偶数链表连接到奇数链表尾部
return odd;
}
};