• LeetCode--Reverse Linked List II


    题目链接:

    https://oj.leetcode.com/problems/reverse-linked-list-ii/

    思路:

    由于题目给的条件比较宽松,需要考虑的几种情况就是:m=n;m=1;n=lenght;其他m<n

    先找到第m-1个节点,以及第m个节点,从m+1遍历到n,依次插入到m-1个节点的后面

    8ms

     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         if(head == NULL || head->next == NULL)
    13             return head;
    14             
    15         ListNode * pre = new ListNode(-1);  
    16         pre->next = head;  
    17           
    18         //pre指向head的前一个  
    19         ListNode *current = pre;  
    20           
    21         //把current指向第m个元素的前一个  
    22         for(int i = 1 ;i < m ;i++){  
    23             current = current->next;  
    24         }  
    25         //revHead指向第M个节点,revCur用来遍历M+1到n的节点,插入到第m-1
    26         //个节点的后面
    27         ListNode *revHead = current->next;
    28         ListNode *revCur = revHead->next;
    29         for(int j = m+1 ; j <= n ; ++j)
    30         {
    31             ListNode *tmp = revCur->next;
    32             revCur->next = current->next;
    33             current->next = revCur;
    34             revCur = tmp;
    35         }
    36         revHead->next = revCur;
    37         return pre->next;
    38     }
    39 };
  • 相关阅读:
    进程虚拟内存
    非连续内存区缺页异常处理
    请求调页和写时复制
    标签对齐(补充)
    shell数学表达式
    缺页异常的处理
    不错的书籍
    imag database2
    image database
    Apache down了?
  • 原文地址:https://www.cnblogs.com/cane/p/3853634.html
Copyright © 2020-2023  润新知