精華區beta Marginalman 關於我們 聯絡資訊
※ 引述《sustainer123 (caster )》之銘言: : https://leetcode.com/problems/merge-in-between-linked-lists : 1669. Merge In Between Linked Lists : 給你兩個鏈表(list1 and list2)與兩個數字(a and b) : 你需要移除list1中a到b的節點並替換為list2 : Example 1: : Input: list1 = [10,1,13,6,9,5], a = 3, b = 4, list2 = : [1000000,1000001,1000002] : Output: [10,1,13,1000000,1000001,1000002,5] : Explanation: We remove the nodes 3 and 4 and put the entire list2 in their : place. The blue edges and nodes in the above figure indicate the result. : Example 2: : Input: list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = : [1000000,1000001,1000002,1000003,1000004] : Output: [0,1,1000000,1000001,1000002,1000003,1000004,6] : Explanation: The blue edges and nodes in the above figure indicate the : result. : 思路: : 遍歷list1 找到a-1和b+1節點 a-1節點指向list2的開頭 : 遍歷list2 找到list2的結尾 結尾指向b+1節點 : 回傳list1 早上好邊板 現在我有c也能寫的題目 struct ListNode* mergeInBetween(struct ListNode* list1, int a, int b, struct L istNode* list2){ struct ListNode *dummy_head = malloc(sizeof(struct ListNode)); struct ListNode *start, *end; int count=0; dummy_head->next = list1; while(count!=b+2){ dummy_head = dummy_head->next; count++; if(count==a) start = dummy_head; } end = dummy_head; start->next = list2; while(list2->next){ list2 = list2->next; list2->next = end; return list1; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.155.122 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1710905065.A.BE7.html
Smallsh: 隨便寫 大師03/20 11:25
JIWP: 大師03/20 11:25
yam276: 你們這些C仔獸有想過我Rust寫linked list的心情嗎03/20 11:25
argorok: 哥 你mem leak了03/20 11:26
NCKUEECS: 大師 對不起:(03/20 11:26
NCKUEECS: 我一堆奇技淫巧functuon都不知道怎麼用03/20 11:29
※ 編輯: NCKUEECS (1.200.155.122 臺灣), 03/20/2024 11:30:01