zoukankan      html  css  js  c++  java
  • leetcode[24]Swap Nodes in Pairs

    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||head->next==NULL)return head;
        ListNode *res=new ListNode(-1);
        res->next=head;
        ListNode *front=head->next;
        ListNode *later=head;
        ListNode *p=res;
        while(front!=NULL)
        {
            later->next=front->next;
            front->next=later;
            p->next=front;
            p=later;
            if (later->next==NULL)break;
            later=later->next;
            front=later->next;
        }
        return res->next;
        }
    };
  • 相关阅读:
    noi.openjudge——2971 抓住那头牛
    P1265 公路修建 洛谷
    P2330 [SCOI2005] 繁忙的都市 洛谷
    P1331 海战 洛谷
    P1464 Function 洛谷
    基于Manhattan最小生成树的莫队算法
    zoj3659
    poj1182
    hdu1325
    hdu3635
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4283654.html
Copyright © 2011-2022 走看看