Leetcode-Swap Nodes in Pairs

来源:互联网 发布:大数据调度系统 编辑:程序博客网 时间:2024/05/22 11:36
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) {        if(head == NULL)            return NULL;        ListNode *p = head, *q = head;        q = q->next;        while(q)        {            int tmp = p->val;            p->val = q->val;            q->val = tmp;            if(q->next)            {                p = q->next;                q = p->next;            }            else                break;        }        return head;    }};

原创粉丝点击