24. Swap Nodes in Pairs

    xiaoxiao2021-03-25  57

    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.

    Subscribe to see which companies asked this question.

    /**

     * 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)               return NULL;           ListNode *addHead = new ListNode(-1);           addHead->next = head;  

            ListNode *first = head, *second = head->next,*preSwap = addHead;  

            int a;

            int b;

            while (second)           {               preSwap->next = second;               first->next = second->next;               second->next = first;               preSwap = first;               first = first->next;               if (!first)                   break;               second = first->next;           }           return addHead->next;       } };
    转载请注明原文地址: https://ju.6miu.com/read-35444.html

    最新回复(0)