赞
踩
给你一个单链表,修改此单链表,使得前面是偶数,后面是奇数。偶数间的相对顺序不变,奇数间的相对顺序不变。返回修改后的单链表的头节点。
例如:
Input: 17->15->8->12->10->5->4->1->7->6->NULL
Output: 8->12->10->4->6->17->15->5->1->7->NULL
- ListNode* divideList(ListNode* head) {
- if (head == NULL) return head;
- ListNode *p1 = head;
- ListNode *p2 = NULL;
- while (p1 && p1->data % 2 == 0) p1 = p1->next;
- if (p1 == NULL) return head;
- p2 = p1->next;
- while (p2) {
- if (p2->data % 2 == 0) {
- swap(p2->data, p1->data);
- p1 = p1->next;
- }
- p2 = p2->next;
- }
- return head;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。