emmm,这个主要就是一个迭代操作。
设置两个指针把单个链表拆分开就行,画画图会更容易理解,代码如下所示:
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
// write code here
if(head==NULL) return NULL;
ListNode *pHead1=head, *pHead2=NULL;
if(head->next==NULL) return pHead1;
pHead2=pHead1->next;
ListNode *p1=pHead1, *p2=pHead2;
while(p2&&p2->next){
p1->next=p1->next->next;
p2->next=p2->next->next;
p1=p1->next;
p2=p2->next;
}
p1->next=pHead2;
return pHead1;
}
};



