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 };
  • 相关阅读:
    操作系统-微内核操作系统
    设备管理-虚设备与SPOOLING技术
    设备管理-数据传输控制方式
    文件管理-空闲存储空间的管理
    文件管理-索引文件结构
    Alpha冲刺8
    Alpha冲刺7
    Alpha冲刺6
    Alpha冲刺5
    Alpha冲刺4
  • 原文地址:https://www.cnblogs.com/linyx/p/4036498.html
Copyright © 2011-2022 走看看