leetcode 328 奇偶链表

刚刚开始没想到,后来想到可以使用两个表头,分别串成两个表,然后奇数链表后面接上偶数链表,结束。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* oddEvenList(ListNode* head) 
    {
        if(!head || !head->next)
        return head;
        ListNode* even = head->next;
        ListNode* temp_odd = head;
        ListNode* temp_even = head->next;
        while(temp_even->next && temp_even->next->next)
        {
            temp_odd->next = temp_odd->next->next;
            temp_even->next = temp_even->next->next;
            temp_odd = temp_odd->next;
            temp_even = temp_even->next;
        }
        if(temp_even->next)
        {
            temp_odd->next = temp_odd->next->next;
            temp_odd = temp_odd->next;
        }
        temp_even->next = nullptr;
        temp_odd->next = even;        
        return head;
    }
};

  

posted @ 2021-08-17 14:55  zhaohhhh  阅读(41)  评论(0)    收藏  举报