leetcode1669 合併兩個鍊錶

2021-10-25 17:35:41 字數 1213 閱讀 3913

給你兩個鍊錶 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 ...