package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param l1 ListNode类 * @param l2 ListNode类 * @return ListNode类 */ func addEnergyValues(l1 *ListNode, l2 *ListNode) *ListNode { // write code here if l1 == nil && l2 == nil { return nil } dummy := &ListNode{Val: 0, Next: nil} x, y := 0, 0 carry := 0 current := dummy for l1 != nil || l2 != nil { x, y = 0, 0 if l1 != nil { x = l1.Val } if l2 != nil { y = l2.Val } next := &ListNode{Val: (x + y + carry) % 10, Next: nil} current.Next = next current = current.Next carry = (x + y + carry) / 10 if l1 != nil { l1 = l1.Next } if l2 != nil { l2 = l2.Next } } if carry > 0 { current.Next = &ListNode{Val: (x + y + carry) / 10, Next: nil} } return dummy.Next }