zoukankan      html  css  js  c++  java
  • [leetcode]Reverse Linked List II

    有一道链表的题目。今天面试别人出了链表的题目都被答出来了,可见这个一般训练过还是能做出来的,就是考虑corner case即可。这里主要是m为1的时候,head就要变了。

    class Solution {
    public:
        ListNode *reverseBetween(ListNode *head, int m, int n) {
            ListNode* current = head;
            ListNode* last = NULL;
            int i = 1;
            while (i != m && current != NULL)
            {
                last = current;
                current = current->next;
                i++;
            }
            ListNode* start1 = last;
            ListNode* start2 = current;
            last = current;
            current = current->next;
            i++;
            while (i != n+1 && current != NULL)
            {
                ListNode* tmp = current->next;
                current->next = last;
                last = current;
                current = tmp;
                i++;
            }
            if (start1 != NULL)
            {
                start1->next = last;
            }
            else
            {
                head = last;
            }
            if (start2 != NULL)
            {
                start2->next = current;
            }
            return head;
        }
    };
    

      

  • 相关阅读:
    函数length属性
    vue面试题
    ES6引进新的原始数据类型symbol使用及特性
    jq动画
    防抖和节流
    this指向
    前端:性能优化之回流和重绘
    react生命周期
    vue生命周期
    react-redux的实现原理
  • 原文地址:https://www.cnblogs.com/lautsie/p/3315845.html
Copyright © 2011-2022 走看看