leetcode---Swap Nodes in Pairs

来源:互联网 发布:怎么报考网络教育 编辑:程序博客网 时间:2024/04/28 06: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;    }};
0 0
原创粉丝点击