Odd Even Linked List

我的是以奇数判断循环结束,但是不小心覆盖掉了……当初找更快解法的时候找了这个,说是12ms,结果跟我的一样还是20ms,可能有小差异。

 

class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if (head==NULL || head->next==NULL) return head;

ListNode* pOdd = head;
ListNode* evenHead = head->next;
ListNode* pEven = evenHead;

while (pEven->next) {
pOdd->next = pOdd->next->next;
pOdd = pOdd->next;

if (pOdd->next) {
pEven->next = pOdd->next;
pEven = pEven->next;
} else {
pEven->next = NULL;
}
}

pOdd->next = evenHead;
pEven->next = NULL;

return head;
}
};

posted @ 2016-04-07 00:09  李杨阳  阅读(115)  评论(0)    收藏  举报