1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// @Title: 合并零之间的节点 (Merge Nodes in Between Zeros)
// @Author: 15816537946@163.com
// @Date: 2022-02-20 11:21:02
// @Runtime: 296 ms
// @Memory: 13 MB
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func mergeNodes(head *ListNode) *ListNode {
    cur := new(ListNode)
    var d = cur
    var ans int
    
    head = head.Next
    for head != nil {
        if head.Val == 0 {
            cur.Next = &ListNode{Val:ans}
            cur = cur.Next
            ans = 0
        } else {
            ans+=head.Val
        }
        head = head.Next
    }
    return d.Next
}