LeetCode:Swap Nodes in Pairs

来源:互联网 发布:淘宝装修备份在哪 编辑:程序博客网 时间:2024/05/16 06:30

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.

// Source : https://oj.leetcode.com/problems/swap-nodes-in-pairs/// Author : Chao Zeng// Date   : 2014-12-21struct ListNode {    int val;    ListNode *next;    ListNode(int x) : val(x),next(NULL) {}};class Solution{public:    ListNode *swapPairs(ListNode *head){        if (!head)            return NULL;        ListNode *phead = head;        int length = 0;        while (phead){            phead = phead->next;            length++;        }        if (length == 1)            return head;        ListNode *first = head;        ListNode *second = head->next;        while (first && second){            int elem = first->val;            first->val = second->val;            second->val = elem;            first = second->next;            if (first != NULL)                second = first->next;            else                break;        }        return head;    }};


0 0
原创粉丝点击