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

本文共 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://ztovo.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
线程池的设计(一):半同步半异步线程池的设计
查看>>
建立JNI层的本地对象,并与JAVA层交互方法
查看>>
剑指offer-面试题3.二维数组中的查找
查看>>
查看/清除DNS解析记录
查看>>
linux命令行计算器
查看>>
python处理中文字符
查看>>
XML Schema的基本语法(转)
查看>>
mysql 数据库连接数的更改
查看>>
系统减肥批处理
查看>>
Centos挂载NTFS格式的移动硬盘
查看>>
sybase集群总结
查看>>
获取语句执行时间
查看>>
mysql字段类型、范围详解
查看>>
MySQL 高可用MMM
查看>>
在ubuntu16.4系统里默认网卡名称enp0s3,如何修改成eth0
查看>>
我的友情链接
查看>>
服务器系统安全防范之浅谈
查看>>
Cisco与Linux的NAT-Linux实现Cisco风格的NAT
查看>>
数组、LIst<> 、 ArrayList的性能对比
查看>>