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

    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 class Solution
     2 {
     3 public:
     4   ListNode *swapPairs(ListNode *head)
     5   {
     6     if(head == NULL) return NULL;
     7     ListNode *cur = head->next, *pre = head, *temp = NULL;
     8     int i = 0;
     9     while(cur)
    10     {
    11       if(i % 2 == 0)
    12       {
    13         pre->next = cur->next;
    14         cur->next = pre;
    15         if(i == 0)
    16         {
    17           head = cur;
    18           temp = head;
    19         }
    20         else
    21         {
    22           temp->next = cur;
    23           temp = temp->next;
    24         }
    25         cur = pre->next;
    26       }
    27       else
    28       {
    29         temp = temp->next;
    30         pre = pre->next;
    31         cur = cur->next;
    32       }
    33       i++;
    34     }
    35     return head;
    36   }
    37 };
  • 相关阅读:
    离愁
    梦想与生活
    神秘巨星
    Web用户控件
    Ajax
    php的基本语法与字符串与增删改查
    php建立方法
    jquery
    上传文件
    webfrom验证控件
  • 原文地址:https://www.cnblogs.com/lxd2502/p/4270738.html
Copyright © 2011-2022 走看看