1669:合并两个链表
This commit is contained in:
parent
adc37344f6
commit
716639f69e
@ -0,0 +1,93 @@
|
|||||||
|
//给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。
|
||||||
|
//
|
||||||
|
// 请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置。
|
||||||
|
//
|
||||||
|
// 下图中蓝色边和节点展示了操作后的结果:
|
||||||
|
//
|
||||||
|
// 请你返回结果链表的头指针。
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 示例 1:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
|
||||||
|
//输出:[0,1,2,1000000,1000001,1000002,5]
|
||||||
|
//解释:我们删除 list1 中第三和第四个节点,并将 list2 接在该位置。上图中蓝色的边和节点为答案链表。
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 示例 2:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//输入:list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,100
|
||||||
|
//0003,1000004]
|
||||||
|
//输出:[0,1,1000000,1000001,1000002,1000003,1000004,6]
|
||||||
|
//解释:上图中蓝色的边和节点为答案链表。
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 提示:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 3 <= list1.length <= 104
|
||||||
|
// 1 <= a <= b < list1.length - 1
|
||||||
|
// 1 <= list2.length <= 104
|
||||||
|
//
|
||||||
|
// Related Topics 链表
|
||||||
|
// 👍 15 👎 0
|
||||||
|
|
||||||
|
package leetcode.editor.cn;
|
||||||
|
|
||||||
|
import com.code.leet.entiy.ListNode;
|
||||||
|
|
||||||
|
//1669:合并两个链表
|
||||||
|
public class MergeInBetweenLinkedLists {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//测试代码
|
||||||
|
Solution solution = new MergeInBetweenLinkedLists().new Solution();
|
||||||
|
}
|
||||||
|
//力扣代码
|
||||||
|
//leetcode submit region begin(Prohibit modification and deletion)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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;
|
||||||
|
int num = 0;
|
||||||
|
while (temp != null) {
|
||||||
|
ListNode trans = new ListNode(0);
|
||||||
|
if (num == a - 1) {
|
||||||
|
trans.next = temp.next;
|
||||||
|
temp.next = list2;
|
||||||
|
temp = trans;
|
||||||
|
}
|
||||||
|
if (num == b + 1) {
|
||||||
|
ListNode temp2 = list2;
|
||||||
|
while (temp2 != null && temp2.next != null) {
|
||||||
|
temp2 = temp2.next;
|
||||||
|
}
|
||||||
|
assert temp2 != null;
|
||||||
|
temp2.next = temp;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
num++;
|
||||||
|
temp = temp.next;
|
||||||
|
}
|
||||||
|
return list1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//leetcode submit region end(Prohibit modification and deletion)
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
<p>给你两个链表 <code>list1</code> 和 <code>list2</code> ,它们包含的元素分别为 <code>n</code> 个和 <code>m</code> 个。</p>
|
||||||
|
|
||||||
|
<p>请你将 <code>list1</code> 中第 <code>a</code> 个节点到第 <code>b</code> 个节点删除,并将<code>list2</code> 接在被删除节点的位置。</p>
|
||||||
|
|
||||||
|
<p>下图中蓝色边和节点展示了操作后的结果:</p>
|
||||||
|
<img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/11/28/fig1.png" style="height: 130px; width: 504px;" />
|
||||||
|
<p>请你返回结果链表的头指针。</p>
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
<p><strong>示例 1:</strong></p>
|
||||||
|
|
||||||
|
<p><img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/11/28/merge_linked_list_ex1.png" style="width: 406px; height: 140px;" /></p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<b>输入:</b>list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
|
||||||
|
<b>输出:</b>[0,1,2,1000000,1000001,1000002,5]
|
||||||
|
<b>解释:</b>我们删除 list1 中第三和第四个节点,并将 list2 接在该位置。上图中蓝色的边和节点为答案链表。
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p><strong>示例 2:</strong></p>
|
||||||
|
<img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/11/28/merge_linked_list_ex2.png" style="width: 463px; height: 140px;" />
|
||||||
|
<pre>
|
||||||
|
<b>输入:</b>list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004]
|
||||||
|
<b>输出:</b>[0,1,1000000,1000001,1000002,1000003,1000004,6]
|
||||||
|
<b>解释:</b>上图中蓝色的边和节点为答案链表。
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
<p><strong>提示:</strong></p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>3 <= list1.length <= 10<sup>4</sup></code></li>
|
||||||
|
<li><code>1 <= a <= b < list1.length - 1</code></li>
|
||||||
|
<li><code>1 <= list2.length <= 10<sup>4</sup></code></li>
|
||||||
|
</ul>
|
||||||
|
<div><div>Related Topics</div><div><li>链表</li></div></div>\n<div><li>👍 15</li><li>👎 0</li></div>
|
Loading…
Reference in New Issue
Block a user