• LeetCode:Reverse Linked List II


    题目链接

    Reverse a linked list from position m to n. Do it in-place and in one-pass.

    For example:
    Given 1->2->3->4->5->NULLm = 2 and n = 4,

    return 1->4->3->2->5->NULL.

    Note:
    Given mn satisfy the following condition:
    1 ≤ m ≤ n ≤ length of list.

    分析:找到m节点,从节点m到n依次反转指针,然后把翻转后的串连起来即可                                                                                    本文地址

     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 *reverseBetween(ListNode *head, int m, int n) {
    12         // IMPORTANT: Please reset any member data you declared, as
    13         // the same Solution instance will be reused for each test case.
    14         if(head == NULL)return NULL;
    15         //为了操作方便,添加额外的头结点tmpHead
    16         ListNode *tmpHead = new ListNode(0), *p = head, *mpre = tmpHead;
    17         tmpHead->next = head;
    18         for(int i = 1; i < m; i++)
    19         {mpre = p; p = p->next;}//找到m节点
    20         ListNode *pafter = p->next, *mbackup = p;
    21         for(int i = 1; i <= n-m; i++)
    22         {//反转m到n的指针
    23             ListNode *pre = p;
    24             p = pafter;
    25             pafter = pafter->next;
    26             p->next = pre;
    27         }
    28         //连接
    29         mbackup->next = pafter;
    30         mpre->next = p;
    31         head = tmpHead->next;
    32         delete tmpHead;
    33         return head;
    34     }
    35 };

    【版权声明】转载请注明出处:http://www.cnblogs.com/TenosDoIt/p/3448601.html

  • 相关阅读:
    web.xml配置详解
    oracle按时间创建分区表
    cron表达式详解
    临时表
    配置非安装版tomcat服务
    CodeForces 785 D Anton and School
    CodeForces 601B Lipshitz Sequence
    CodeForces 590C Three States BFS
    CodeForces 592D Super M DP
    CodeForces 507E Breaking Good 2维权重dij
  • 原文地址:https://www.cnblogs.com/TenosDoIt/p/3448601.html
Copyright © 2020-2023  润新知