文章
时间轴
标签
音乐室
友人帐
一刻时光
清单
留言板
相册
算法海洋
关于
Slcpの童话镇 🏰
写文章
1669. 合并两个链表
中等
Java
数据结构与算法
原题链接
发布日期:
2023年01月30日
文章字数:
5.1k
阅读次数:
463
阅读时长:
0小时0分0秒
## 解题思路 前言:由提示可知`a`和`b`大于0且小于链表的`length-1`;所以这里无需考虑边界条件 1.只需先切去链表1的指定`[a,b]`的位置,创建一个指针`temp1`,用`index`记录下标,先将`temp1`移动到`a-1`的位置,删去`[a,b]`区间,实际 就是将此时的`temp1`指针的`next`指向`b+1`的位置,观察发现就是`temp1`使用`next`方法`(b-a+1)`次。 2.连接步骤:创建指针`temp2`,将`temp2`移动到链表`list2`的末尾,然后将`temp2.next`指向`temp1`的`next`,再将`temp1`的`next`指向`list2`头节点,这样 就完成了拼接 ## 代码 ```java /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode mergeInBetween(ListNode list1, int a, int b, ListNode list2) { //移动指针到list2的末尾 ListNode temp2 = list2; while(temp2.next != null){ temp2 = temp2.next; } ListNode temp1 = list1; int index = 0; while(index != a - 1){ temp1 = temp1.next; index++; } int next_count = b - a + 1; while(next_count > 0){ temp1.next = temp1.next.next; next_count--; } temp2.next = temp1.next; temp1.next = list2; return list1; } } ```
您阅读这篇文章共耗时:
0小时16分34秒
文章链接:
https://www.slcp.top/article/read/1619969167847522306
版权声明:
本博客所有文章除特別声明外,均采用
CC BY 4.0
许可协议。转载请注明来源
Slcp
!
转载文章以及部分引用均为自己整理记录学习而用,若有侵权,请联系删除。
Java
数据结构与算法
评论
Valine
Gitalk
目录
搜索
首页
前进
后退
刷新
申请友链
在线联系