• 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.

     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         
    13         if(head == NULL || head->next == NULL){
    14             return head;
    15         }
    16         ListNode* newHead = new ListNode(-1);
    17         ListNode* tail = newHead;
    18         newHead->next = head;
    19         
    20         while(tail && tail->next && tail->next->next){
    21             ListNode*  n = tail->next;
    22             ListNode*  nn = tail->next->next;
    23             
    24             //tail->next = nn;
    25             n->next = nn->next;
    26             nn->next = n;
    27             tail->next = nn;
    28             
    29             tail = tail->next->next;
    30         }
    31         
    32         return newHead->next;
    33     }
    34 };
  • 相关阅读:
    Redis其他知识
    Mybatis的sql语句操作
    Redis
    mybatis插件原理
    mybatis工作原理
    Mybatis逆向工程
    mybatis缓存机制
    Mybatis查询
    zabbix api添加主机
    jenkins + bitbucket 实现 pr自动构建及build状态通知
  • 原文地址:https://www.cnblogs.com/sankexin/p/5864426.html
Copyright © 2020-2023  润新知