zoukankan      html  css  js  c++  java
  • LeetCode 024 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)
    13             return head;
    14         ListNode* dummy=new ListNode(-1),*pre=dummy;
    15         dummy->next=head;
    16         while(pre->next&&pre->next->next)
    17         {
    18             ListNode* last=pre->next->next;
    19             pre->next->next=last->next;
    20             last->next=pre->next;
    21             pre->next=last;
    22             pre=last->next;
    23         }
    24         return dummy->next;
    25     }
    26 };
  • 相关阅读:
    11.个别程序题
    常见设计模式部分
    框架部分综合
    mybatis部分
    spring部分
    hibernate部分
    struts2部分
    10.java反射和类加载机制
    9.垃圾回收机制和JVM
    oracle部分
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8651977.html
Copyright © 2011-2022 走看看