leetcode_odd_even_linked_list

难度:Medium

代码如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
ListNode *odd_dummy = new ListNode(1);
ListNode *even_dummy = new ListNode(2);
ListNode *odd_cur = odd_dummy;
ListNode *even_cur = even_dummy;
ListNode *cur = head;
int count = 1;
while(cur != NULL)
{
if(count++ % 2 == 1)
{
odd_cur->next = cur;
cur = cur->next;
odd_cur = odd_cur->next;
odd_cur->next = NULL;
}
else
{
even_cur->next = cur;
cur = cur->next;
even_cur = even_cur->next;
even_cur->next = NULL;

}
}
odd_cur->next = even_dummy->next;
return odd_dummy->next;
}
};

运行结果:16ms,超过30.10%