思路
直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可
解题过程
返回链表可以有头结点,方便插入,返回head.next
Code
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public int sum=0;
public ListNode ans=new ListNode();
public ListNode tans=ans;
public ListNode mergeNodes(ListNode head) {
traversal(head.next);
return ans.next;
}
public void traversal(ListNode p){
if(p==null) return;
if(p.val==0){
ListNode t=new ListNode(sum);
tans.next=t;
tans=tans.next;
sum=0;
traversal(p.next);
}else{
sum+=p.val;
traversal(p.next);
}
}
}
作者:菜卷
链接:https://leetcode.cn/problems/merge-nodes-in-between-zeros/solutions/2910089/he-bing-ling-zhi-jian-de-jie-dian-by-ash-gb1j/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。