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 };
  • 相关阅读:
    140704
    140703
    140702
    堆排序
    并查集
    140701
    这年暑假集训-140630
    vim for python
    hihocode 第九十二周 数论一·Miller-Rabin质数测试
    hdu 3157 Crazy Circuits 有源汇和下界的最小费用流
  • 原文地址:https://www.cnblogs.com/linyx/p/4036498.html
Copyright © 2011-2022 走看看