Re: [閒聊] 每日leetcode已回收
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
推
07/04 20:37,
1年前
, 1F
07/04 20:37, 1F
推
07/04 20:45,
1年前
, 2F
07/04 20:45, 2F
討論串 (同標題文章)
完整討論串 (本文為第 445 之 1554 篇):