精華區beta Marginalman 關於我們 聯絡資訊
2181. Merge Nodes in Between Zeros 給一個linked list 該linked list的頭尾node.Val都是0 並且裡面有多組被0分開的數組 把兩個連續的0之間的node值相加變成單一個node 接著把這些node連接成一個不包含0的linked list 並回傳經過上述操作後的linked list 思路: 用prev紀錄上一個0的下一個node 並用sum紀錄兩個0之間所有node.val的總和 當遇到0之後 把prev.val=sum 並且將prev.next指向第二個0下一個node 經過上述操作後就可以得到答案了 C code : /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* mergeNodes(struct ListNode* head) { head=head->next; struct ListNode* prev=head,*tmp=prev; int sum=0; while(tmp!=NULL){ while(tmp->val!=0){ sum+=tmp->val; tmp=tmp->next; } prev->val=sum; sum=0; tmp=tmp->next; prev->next=tmp; prev=prev->next; } return head; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.83.198 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1720095978.A.003.html
CanIndulgeMe: 技术大神 07/04 20:37
sustainer123: 大師 07/04 20:45