侧边栏壁纸
博主头像
Hope博主等级

努力赚钱的工科研究生

  • 累计撰写 362 篇文章
  • 累计创建 129 个标签
  • 累计收到 5 条评论
标签搜索

LeetCode 24. 两两交换链表中的节点

Hope
2022-06-20 / 0 评论 / 0 点赞 / 254 阅读 / 606 字
温馨提示:
本文最后更新于 2022-06-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

LeetCode 24. 两两交换链表中的节点

思路:

image.png
找到规律,移动指针。链表的问题只要画好图就很容易。

代码:

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

0

评论区