給你兩個鍊錶 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,1000003,1000004]
輸出:[0,1,1000000,1000001,1000002,1000003,1000004,6]
解釋:上圖中藍色的邊和節點為答案鍊錶。
3 <= list1.length <= 104
1 <= a <= b < list1.length - 1
1 <= list2.length <= 104
思路:一步一步操作即可
/**
* definition for singly-linked list.
* public class listnode
* listnode(int val)
* listnode(int val, listnode next)
* }*/class solution
//2.找到鍊錶1的第b+1個節點
listnode nodeb = nodea.next;
for(int i = a; i < b; i++)
nodeb = nodeb.next;
//3.找到鍊錶2的尾節點
listnode tail = list2;
while(tail.next != null)
//4.將鍊錶2插入到鍊錶1的第a個和第b個節點之間
nodea.next = list2;
tail.next = nodeb;
return list1;
}}
LeetCode 1669 合併兩個鍊錶
題意 給你兩個鍊錶 list1 和 list2 它們包含的元素分別為 n 個和 m 個。請你將 list1 中第 a 個節點到第 b 個節點刪除,並將list2 接在被刪除節點的位置。資料範圍 3 list1.length 1041 a b list1.length 11 list2.length ...
LeetCode 1669 合併兩個鍊錶
difficulty 中等 給你兩個鍊錶list1和list2,它們包含的元素分別為n個和m個。請你將list1中第a個節點到第b個節點刪除,並將list2接在被刪除節點的位置。下圖中藍色邊和節點展示了操作後的結果 請你返回結果鍊錶的頭指標。示例 1 輸入 list1 0,1,2,3,4,5 a 3...
LeetCode 合併兩個鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 遍歷解法 同時不斷遍歷兩個鍊錶,取出小的追加到新的頭節點後,直至兩者其中乙個為空 再將另一者追加的新鍊錶最後 public listnode ...