博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
*92. Reverse Linked List II (follow up questions)
阅读量:5235 次
发布时间:2019-06-14

本文共 1153 字,大约阅读时间需要 3 分钟。

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

Note: 1 ≤ m ≤ n ≤ length of list.

Example:

Input: 1->2->3->4->5->NULL, m = 2, n = 4Output: 1->4->3->2->5->NULL

FIrstly, I wanna use stack but need cosume space

Finally, I use in-plcae method

思路:reference: http://bangbingsyb.blogspot.com/2014/11/leetcode-reverse-linked-list-ii.html

 
反转整个链表的变种,指定了起点和终点。由于m=1时会变动头节点,所以加入一个dummy头节点
 
1. 找到原链表中第m-1个节点start:反转后的部分将接回改节点后。
从dummy开始移动m-1步
 
D->1->2->3->4->5->NULL
       |
      st
 
2. 将从p = start->next开始,长度为L = n-m+1的部分链表反转。
            __________
            |                  |
            |                 V
D->1->2<-3<-4    5->NULL             
       |     |           | 
      st    p          h0         
 
3. 最后接回
 
            __________
            |                  |
            |                 V
D->1   2<-3<-4    5->NULL             
       |________|                

In code

1. dfine dummy node

2. find the start node

3. reverse the node

4. connect the list

 

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {    public ListNode reverseBetween(ListNode head, int m, int n) {        ListNode d = new ListNode(0);        d.next = head;        //find start point(head )        ListNode pre = d;         for(int i = 0; i

转载于:https://www.cnblogs.com/stiles/p/leetcode92.html

你可能感兴趣的文章
C#的托管与非托管大难点
查看>>
[转]HTTPS简谈
查看>>
(图片)jsp上传图片,进行缩放处理
查看>>
集合类List,set,Map 的遍历方法,用法和区别
查看>>
HDU-2577-How to Type
查看>>
java日志框架之logback——布局详细说明书地址
查看>>
Java Selenium (十二) 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素...
查看>>
Scala入门系列(十):函数式编程之集合操作
查看>>
pulseaudio的交叉编译
查看>>
(Problem 7)10001st prime
查看>>
Cracking The Coding Interview 1.1
查看>>
mysql安装linux_二进制包安装
查看>>
POJ 3280 Cheapest Palindrome
查看>>
vb.net 浏览文件夹读取指定文件夹下的csv文件 并验证,显示错误信息
查看>>
thinkpad T420屏幕对比度设置
查看>>
20181212作业
查看>>
网络操作系统第一、二章习题
查看>>
如何做一名好的web安全工程师?
查看>>
shell 面试题
查看>>
企业选择 多云管理平台 六大注意事项
查看>>