Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-07-04 20:26:15
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;
}
作者: CanIndulgeMe (CIM)   2024-07-04 20:37:00
技术大神
作者: sustainer123 (caster)   2024-07-04 20:45:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com