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 }