码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode "Odd Even Linked List"

时间:2016-01-23 07:58:44      阅读:491      评论:0      收藏:0      [点我收藏+]

标签:

Visualize the unzip process.

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

        ListNode *pOddHead = head, *pEvenHead = head->next;
        ListNode *pOddTail = pOddHead, *pEvenTail = pEvenHead;
        ListNode *pOddLast = pOddTail;

        while (pOddTail)
        {
            ListNode *pNxtOdd = pOddTail->next ? pOddTail->next->next : nullptr;
            ListNode *pNxtEven = (!pEvenTail || !pEvenTail->next) ? nullptr : pEvenTail->next->next;
            
            pOddTail->next = pNxtOdd;
            if(pEvenTail) pEvenTail->next = pNxtEven;
            
            pOddLast = pOddTail;
            pOddTail = pNxtOdd;
            pEvenTail = pNxtEven;
        }
        pOddLast->next = pEvenHead;

        return pOddHead;
    }
};

LeetCode "Odd Even Linked List"

标签:

原文地址:http://www.cnblogs.com/tonix/p/5152784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!