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.

    链表神马的完全是我的克星啊。没有算法,好好画图,考虑p->next != NULL时一定要先考虑一下p!=NULL!!!!!!!!

     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 = new ListNode(-1), *pre = h, *cur = head;
    14         pre->next = head;
    15         ListNode *tmp;
    16         while (cur != NULL && cur->next != NULL) {
    17             tmp = cur->next;
    18             pre->next = tmp;
    19             cur->next = tmp->next;
    20             tmp->next = cur;
    21             pre = cur;
    22             cur = cur->next;
    23         }
    24         return h->next;
    25     }
    26 };
  • 相关阅读:
    CSS基础(十七)--Padding和margin(内边距和外边距)
    tomcat动态网站
    http和nginx错误定义
    nginx动态网站
    nginx动静分离
    nginx负载均衡
    nginx介绍
    cobbler服务器
    apache网络配置
    网络源
  • 原文地址:https://www.cnblogs.com/easonliu/p/3645595.html
Copyright © 2011-2022 走看看