博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode-Swap Nodes in Pairs
阅读量:4952 次
发布时间:2019-06-12

本文共 1419 字,大约阅读时间需要 4 分钟。

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.

/** * 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) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        if(head==NULL)return NULL;        else{            if(head->next==NULL)return head;            else{                ListNode* ret;                ListNode* temp;                ListNode* ptr;                ret=head->next;                temp=ret->next;                ret->next=head;                ptr=ret->next;                ptr->next=temp;                while(ptr->next!=NULL){                    if(ptr->next->next==NULL)break;                    else{                        temp=ptr->next;                        ptr->next=ptr->next->next;                        temp->next=ptr->next->next;                        ptr->next->next=temp;                        ptr=ptr->next->next;                    }                }                return ret;            }        }    }};

 

转载于:https://www.cnblogs.com/superzrx/p/3327271.html

你可能感兴趣的文章