zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    团队作业2-《需求规格说明书》
    团队作业 —— 团队选题
    自我介绍+软工五问
    团队作业5——测试与发布(Alpha版本)
    结对项目(与陈超国)
    个人项目wordcount
    自我介绍+软工5问
    个人项目(C语言)
    自我介绍+软工五问
    第三篇 Scrum冲刺博客
  • 原文地址:https://www.cnblogs.com/TenosDoIt/p/3448601.html
Copyright © 2011-2022 走看看