#include"ListNode.hpp"

class Solution { public: ListNode* swapPairs(ListNode* head) { if (head == nullptr || head->next == nullptr) { return head; } ListNode* newHead = head->next; ListNode* prev = nullptr; ListNode* curr = head;

        while (curr != nullptr && curr->next != nullptr) {
            ListNode* next = curr->next;
            curr->next = next->next;
            next->next = curr;
            
            if (prev != nullptr) {
                prev->next = next;
            }
            
            prev = curr;
            curr = curr->next;
        }
        
        return newHead;
    }

}

给你一个链表两两交换其中相邻的节点并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题即只能进行节点交换。输出末尾有空格imagepng样例输入11 2 3 4样例输出12 1 4 3样例输入22 3 4 5 6 7样例输出23 2 5 4 7 6ListNodehpp#ifndef __LISTNODE__#define __LISTNODE__class ListNod

原文地址: http://www.cveoy.top/t/topic/hFNt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录