首页 > 其他 > 详细

LeetCode "Odd Even Linked List"

时间:2016-01-23 07:56:47      阅读:235      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!