博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
92. Reverse Linked List II
阅读量:7166 次
发布时间:2019-06-29

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

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

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

难度:medium

题目:反转从m到n的链表元素。一次遍历。

思路:记录m及m之前的位置,然后使用头插法。

Runtime: 2 ms, faster than 97.09% of Java online submissions for Reverse Linked List II.

Memory Usage: 36.9 MB, less than 0.95% of Java online submissions for Reverse Linked List II.

/** * 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) {        if (m == n) {            return head;        }                ListNode dummyHead = new ListNode(0);        dummyHead.next = head;        ListNode ptr = head, prevMPtr = dummyHead, tailPtr = head;        for (int i = 1; i <= n; i++) {            ListNode node = ptr;            ptr = ptr.next;            if (i < m) {                prevMPtr = node;            } else if (i == m) {                tailPtr = node;                node.next = null;            } else {                node.next = prevMPtr.next;                prevMPtr.next = node;            }        }        tailPtr.next = ptr;                return dummyHead.next;    }}

转载地址:http://diqwm.baihongyu.com/

你可能感兴趣的文章
20160408-PHP实现简单的日历表
查看>>
lightswitch 添加 TreeView 控件
查看>>
【51CTO学院三周年】跟老段学RHCE有感
查看>>
python read() readline() readlines() write() writelines()方法总结与区别
查看>>
linux中的NFS服务器配置及/etc/exports
查看>>
兴科学习
查看>>
anaconda
查看>>
你应该这样写”年度总结“
查看>>
我的友情链接
查看>>
poj 1850 code
查看>>
我的友情链接
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
MR程序的几种提交运行模式
查看>>
下拉框树形
查看>>
mysql自动备份脚本
查看>>
VMware中安装RHEL 7.1后出现锁屏的解决方法
查看>>
我的友情链接
查看>>
[示例代码]爱车加油记
查看>>
android 点击屏幕让软件盘消失
查看>>
关于linux特殊重定向的理解
查看>>