LeetCode:328. 奇偶链表

/**
 * 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=new ListNode(0);//初始化,分别存放奇数
        ListNode* p=odd;
        ListNode* even=new ListNode(0);//偶数
        ListNode* q=even;
        if(head==NULL||head->next==NULL)
        {
            return head;
        }
        int i=1;
        while(head!=NULL)
        {
            if(i%2==0)
            {
                p->next=new ListNode(head->val);
                p=p->next;
                head=head->next;
                i++;
            }
            else
            {
                q->next=new ListNode(head->val);
                q=q->next;
                head=head->next;
                i++;
            }
        }
        q->next=odd->next;
        return even->next;
    }
};

猜你喜欢

转载自blog.csdn.net/dosdiosas_/article/details/106223147