题解 | #链表的奇偶重排#
链表的奇偶重排
https://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3
struct ListNode* oddEvenList(struct ListNode* head ) {
if(head == NULL)
return NULL;
struct ListNode* odd = head; //第一个奇数位结点
struct ListNode* even = head->next; //第一个偶数位结点
struct ListNode* phead = even; //用于最后将两链表链接起来的接口
while(even != NULL && even->next != NULL){
odd->next = even->next; //指向下一个奇数位结点
odd = odd->next; //移动指针
even->next = odd->next; //指向下一个偶数位结点
even = even->next; //移动指针
}
odd->next = phead; //最后一个奇数位结点和第一个偶数位结点链接起来
return head;
}
360集团公司氛围 347人发布
