zoukankan      html  css  js  c++  java
  • LeetCode24 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.(Easy)

    分析:

    链表题,画个图就比较清晰了,就是每两个进行一下翻转,注意翻转部分头尾指针的指向即可,头指针会变,所以用下dummy node。

    代码:

     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         ListNode dummy(0);
    13         dummy.next = head;
    14         head = &dummy;
    15         while (head -> next != nullptr && head -> next -> next != nullptr) {
    16             ListNode* temp1 = head -> next;
    17             head -> next = head -> next -> next;
    18             ListNode* temp2 = head -> next -> next;
    19             head -> next -> next = temp1;
    20             temp1 -> next = temp2;
    21             head = head -> next -> next;
    22         }
    23         return dummy.next;
    24     }
    25 };
     
  • 相关阅读:
    WEB API&API
    event flow
    JS-for的衍生对象
    JS-function
    Object Constructor
    前端发展史
    JavaScript中document.getElementById和document.write
    正则表达式把Paul换成Ringo
    11th blog
    10th week blog
  • 原文地址:https://www.cnblogs.com/wangxiaobao/p/5774074.html
Copyright © 2011-2022 走看看