LeetCode题解之 Odd Even Linked List

1、题目描述

2、问题分析

将链表拆分成两个,奇数节点形成一个链表,偶数节点形成另外一个链表,最后将偶数节点链表加在奇数节点链表后面。

3、代码

 1  ListNode* oddEvenList(ListNode* head) {
 2         if( !head || head->next == NULL  ){
 3             return head;
 4         }
 5         
 6         ListNode* odd = head;
 7         ListNode* even = head->next;
 8         ListNode* even_m = even ;
 9         ListNode* p = even->next;
10         int count = 1;
11         while( p != NULL ){
12             if( count % 2 != 0 ){
13                 odd->next = p ;
14                 odd = odd->next;
15             }else{
16                 even_m->next = p ;
17                 even_m = even_m ->next;
18             }
19             p = p->next;
20             ++count ;
21         }
22         
23         odd->next = even ;
24         even_m->next = NULL ;
25         return head;
26         
27         
28     }
pp
原文地址:https://www.cnblogs.com/wangxiaoyong/p/9329678.html