当前位置:   article > 正文

把一个链表的奇数和偶数分开_编写函数sprit(linklist head),实现单链表奇数偶数分离

编写函数sprit(linklist head),实现单链表奇数偶数分离

给你一个单链表,修改此单链表,使得前面是偶数,后面是奇数。偶数间的相对顺序不变,奇数间的相对顺序不变。返回修改后的单链表的头节点。

例如:

Input: 17->15->8->12->10->5->4->1->7->6->NULL
Output: 8->12->10->4->6->17->15->5->1->7->NULL


  1. ListNode* divideList(ListNode* head) {
  2.     if (head == NULL) return head;
  3.     ListNode *p1 = head;
  4.     ListNode *p2 = NULL;
  5.     while (p1 && p1->data % 2 == 0) p1 = p1->next;
  6.     if (p1 == NULL) return head;
  7.     p2 = p1->next;
  8.     while (p2) {
  9.         if (p2->data % 2 == 0) {
  10.             swap(p2->data, p1->data);
  11.             p1 = p1->next;
  12.         }
  13.         p2 = p2->next;
  14.     }
  15.     return head;
  16. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
  

闽ICP备14008679号