zoukankan      html  css  js  c++  java
  • Leetcode | 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.

    比起第一次写简洁多了。

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode *swapPairs(ListNode *head) {
    12         if (head == NULL) return head;
    13         ListNode h(0), *first = head, *second, *prev = &h, *nextFirst;
    14         h.next = head;
    15         
    16         while (first) {
    17             second = first->next;
    18             if (!second) break;
    19             prev->next = second;
    20             nextFirst = second->next;
    21             second->next = first;
    22             first->next = nextFirst;
    23             prev = first;
    24             first = nextFirst;
    25         }
    26         
    27         return h.next;
    28     }
    29 };
  • 相关阅读:
    JZOJ 5870 地图
    20190921
    20190919
    SP703 SERVICE
    UVA323 Jury Compromise
    [note]一类位运算求最值问题
    [BZOJ3674]可持久化并查集
    [luogu3359]改造异或树
    [luogu4755]Beautiful Pair
    [BJWC2012]冻结
  • 原文地址:https://www.cnblogs.com/linyx/p/4036498.html
Copyright © 2011-2022 走看看