思路非常简单 把奇数拼成一个链表 偶数拼成一个链表 然后两个链表在合体
比如给的示例
奇数链表
1->3->5
偶数链表
2->4->NULL
在组合就变成了
1->3->5->2->4->NULL
要注意的点 记得存好偶数的头结点
注意奇偶指针的变动规律
看代码
ListNode* oddEvenList(ListNode* head) {
if(head==NULL)return head;
ListNode* odd=head;//奇数第一个结点
ListNode* evehead=head->next;//保存偶数头结点
ListNode* eve=evehead;//偶数第一个结点
while(eve!=NULL&&eve->next!=NULL)//
{
odd->next=eve->next;//奇偶指针的变换
odd=odd->next;
eve->next=odd->next;
eve=eve->next;
}
odd->next=evehead;//奇数链表的尾巴指向偶数链表的头
return head;
}