网站首页 > 精选教程 正文
题目描述:
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。
说明:
1 ≤ m ≤ n ≤ 链表长度。
示例:
输入: 1->2->3->4->5->NULL, m = 2, n = 4
输出: 1->4->3->2->5->NULL
思路:
这道题目要求反转从位置 m 到 n 的链表,可以分为 3 部来进行:
1、将链表顺序遍历到位置 m 位置处;
2、将链表从位置 m 到 n 的节点进行反转,反转方式为定义一个临时链表,将需要反转的节点插入临时链表的位置 0 处;
3、将链表位置 n 以后的节点链接到反转链表的尾部
Java代码:
public ListNode reverseBetween(ListNode head, int m, int n) {
ListNode result = new ListNode(-1);
result.next = head;
ListNode temp = result;
int i = 1;
while(i < m && null != temp){
temp = temp.next;
i++;
}
temp.next = swap(temp.next,n-m+1);
return result.next;
}
private ListNode swap(ListNode head, int len){
ListNode result = new ListNode(-1);
int i = 0;
while(i < len && null != head){
ListNode temp = head;
head = head.next;
temp.next = result.next;
result.next = temp;
i++;
}
ListNode temp = result;
while(null != temp.next){
temp = temp.next;
}
temp.next = head;
return result.next;
}
- 上一篇: 面试官:如何将一个链表分组并对每组进行反转?
- 下一篇: #反转链表 #反转链表C语言
猜你喜欢
- 2024-11-02 LeetCode-025-K 个一组翻转链表 每k个一组翻转链表
- 2024-11-02 C++算法(五)反转链表 反转链表c#
- 2024-11-02 61. 旋转链表 反转链表 头插法
- 2024-11-02 字节面试算法集第三题链表反转 #算法
- 2024-11-02 Java数据结构和算法—链表 java中的链表数据结构
- 2024-11-02 面试现场:如何实现链表的逆序? 链表逆置是什么意思
- 2024-11-02 LeetCode-206-反转链表 反转链表 迭代
- 2024-11-02 迭代法 链表翻转 #软件开发 迭代法程序
- 2024-11-02 每日算法---单链表反转和是否有环
- 2024-11-02 C++:挑战鹅厂面试题(一)--反转链表
你 发表评论:
欢迎- 06-30【AI绘永昌】风景篇(二)(永昌图文)
- 06-30AI风景建筑图集(ai景观平面图)
- 06-30AI绘制精美绚丽的景色(ai绘制图案)
- 06-30AI风景,不存在的地方又增加了(ai风景插画作品)
- 06-301 分钟解锁!运用 DS + 即梦 + 豆包,轻松打造个性化风景音乐短视频
- 06-30美景欣赏 #AI绘画#(美景图画)
- 06-30AI动漫风景图集1 ~(ai动漫图片)
- 06-30原图壁纸,ai绘画风景(原图壁纸下载)
- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)