LeetCode:两两交换链表元素

题目:
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换
在这里插入图片描述
思路:
在这里插入图片描述

class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        ListNode *vcur = new ListNode(0);
        vcur->next = head;
        ListNode*cur = vcur;
        

        while(cur->next != nullptr && cur->next->next != nullptr )
        {
            ListNode*tmp = cur->next;
            ListNode*tmp1 = cur->next->next->next;

            cur->next = cur->next->next;
            cur->next->next = tmp;
            cur->next->next->next = tmp1;

            cur = cur->next->next;
        }
        return vcur->next;
    }
};
posted @ 2021-10-19 18:36  simonlma  阅读(13)  评论(0)    收藏  举报