1669. 合并两个链表
Posted 不吐西瓜籽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1669. 合并两个链表相关的知识,希望对你有一定的参考价值。
算法记录
LeetCode 题目:
给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。
说明
一、题目
输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
输出:[0,1,2,1000000,1000001,1000002,5]
二、分析
- 利用对象的指向改变来连接即可,需要注意的是删除范围的判断,删除区间,也就是连接的元素指向后一个。
/**
* 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) {
ListNode temp = list1;
ListNode temp2 = list2;
ListNode t1 = null;
ListNode t2 = null;
int count = 0;
while(temp != null) {
count++;
if(count == a) t1 = temp;
if(count == b + 1) {
t2 = temp;
break;
}
temp = temp.next;
}
while(temp2.next != null) temp2 = temp2.next;
t1.next = list2;
temp2.next = t2.next;
return list1;
}
}
总结
熟悉链表的对象指向问题。
以上是关于1669. 合并两个链表的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Algorithm 1669. 合并两个链表
LeetCode Algorithm 1669. 合并两个链表