你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。
请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。
下图中蓝色边和节点展示了操作后的结果如上图。
请你返回结果链表的头指针。
var mergeInBetween = function(list1, a, b, list2) {
let r = new ListNode(null, list1), i = 0
while (++i < a) list1 = list1.next
let next1 = list1.next
list1.next = list2
while (i++ <= b) next1 = next1.next
while (list2.next) list2 = list2.next
list2.next = next1
return r.next
};
func mergeInBetween(list1 *ListNode, a int, b int, list2 *ListNode) *ListNode {
r, i := &ListNode{Val: 0, Next: list1}, 0
for i < a - 1 {
list1 = list1.Next
i++
}
next1 := list1.Next
list1.Next = list2
for i < b {
next1 = next1.Next
i++
}
for list2.Next != nil {
list2 = list2.Next
}
list2.Next = next1
return r.Next
}
class Solution {
function mergeInBetween($list1, $a, $b, $list2) {
$r = new ListNode(null, $list1);
$i = 0;
while (++$i < $a) $list1 = $list1->next;
$next1 = $list1->next;
$list1->next = $list2;
while ($i++ <= $b) $next1 = $next1->next;
while ($list2->next) $list2 = $list2->next;
$list2->next = $next1;
return $r->next;
}
}