Swap Nodes in Pairs

Q: Given a linked list, swap every two adjacent nodes and return its head.

For example,
Given 1->2->3->4, you should return the list as 2->1->4->3.

Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.

        ListNode *swapPairs(ListNode *head) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(!head) return head;
        ListNode *cur,*next,*prev;
        cur = head;
        prev = NULL;
        
        while(cur)
        {
            next = cur->next;
            if(!next)
            {
                if(prev)
                    prev->next = cur;
                else
                    head = cur;
                break;
            }else
            {
                cur->next = next->next;
                next->next = cur;
                if(prev)
                    prev->next = next;
                else
                    head = next;
                prev = cur;
                cur = cur->next;
            }
        }
        
        
        return head;
        
    }

  

原文链接: https://www.cnblogs.com/summer-zhou/archive/2013/06/15/3138017.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    Swap Nodes in Pairs

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/92236

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午1:35
下一篇 2023年2月10日 上午1:35

相关推荐