给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。
请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-in-between-linked-lists
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
分别找到 a-1
、b+1
、list2
的尾巴,然后按需连接就好了
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} list1
* @param {number} a
* @param {number} b
* @param {ListNode} list2
* @return {ListNode}
*/
var mergeInBetween = function(list1, a, b, list2) {
var count = 1
var p = list1
var begin
while (true) {
if (count === a) {
begin = p
} else if (count === b + 2) {
var list2Tail = list2
while (list2Tail.next) {
list2Tail = list2Tail.next
}
begin.next = list2
list2Tail.next = p
return list1
}
p = p.next
count ++
}
};