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

Swap Nodes in Pairs - LeetCode

时间:2019-02-09 11:53:32      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:解法   alt   pair   int   next   .com   lin   etc   技术   

题目链接

Swap Nodes in Pairs - LeetCode

注意点

  • 考虑链表为空

解法

解法一:维护三个指针,前中后,调换这三个位置的next指针即可。时间复杂度O(n)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        if(head == NULL) return NULL;
        auto p = new ListNode(0);
        p->next = head;
        ListNode* pre = p;
        ListNode* cur = head;
        ListNode* next = head->next;
        while(cur != NULL && cur->next != NULL)
        {
            pre->next = next;
            cur->next = next->next;
            next->next = cur;
            
            pre = cur;
            cur = cur->next;
            if(cur != NULL)
                next = cur->next;
        }
        return p->next;
    }
};

技术图片

小结

  • 链表是很常见的一种数据结构,要花点时间专门研究一下。

Swap Nodes in Pairs - LeetCode

标签:解法   alt   pair   int   next   .com   lin   etc   技术   

原文地址:https://www.cnblogs.com/multhree/p/10357247.html

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