328.奇偶链表

  /*
思路:使用pre指向奇数节点,cur指向偶数节点,
将cur后一个奇数节点移到pre后,cur前,
然后pre、cur都后移一位,此时pre指向的还是奇数节点,
cur指向的还是偶数节点,依次类推
*/
class Solution {
public:
    ListNode* oddEvenList(ListNode* head) {
        if(!head || !head->next) return head;
        ListNode *pre=head,*cur=head->next;
        while(cur && cur->next){
            ListNode *tmp=pre->next;
            pre->next=cur->next;
            cur->next=cur->next->next;
            pre->next->next=tmp;
            pre=pre->next;
            cur=cur->next;
        }
        return head;
    }
};

你可能感兴趣的:(数据结构复习)