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

    思路:添加一个空的头指针,每两个结点一组,先链接后一个结点,再链接前一个结点(注意链接完后将该结点的next指针置为空)。

     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||head->next==NULL)
    13             return head;
    14         ListNode *p=head,*q=p->next,*r;
    15         r->next=NULL;
    16         head=r;
    17         while(p!=NULL)
    18         {
    19             if(q!=NULL)
    20             {
    21                 head->next=q;
    22                 q=q->next;
    23                 head=head->next;
    24             }
    25             head->next=p;
    26             head=head->next;
    27             head->next=NULL;
    28             p=q;
    29             if(p!=NULL&&p->next!=NULL)
    30                 q=p->next;
    31         }
    32         return r->next;
    33     }
    34 };
  • 相关阅读:
    重定义自定义类型
    范式
    管理
    JVM调优[转]
    I/O相关的等待事件
    等待事件监测性能瓶颈
    Shared pool
    SQL*Plus和PL/SQL
    Oracle优化器和执行计划
    10053事件
  • 原文地址:https://www.cnblogs.com/levicode/p/3974626.html
Copyright © 2020-2023  润新知