题解 | #牛群的能量值#
牛群的能量值
https://www.nowcoder.com/practice/fc49a20f47ac431981ef17aee6bd7d15?tpId=354&tqId=10590540&ru=/exam/oj/ta&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D354
知识点:链表的遍历
解题思路:同时遍历两条链表,用sum来存储当前位上的和,再加上上一位的进位得到当前位上最终的和。然后计算当前位的进位和余位,用链表存下余位,直到两条链表都到nil为止。由于最后可能存在进位,在循环外特判一下。
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
carry:=0
newHead:=&ListNode{}
cur:=newHead
for l1 !=nil || l2!=nil{
sum:=0
if l1!=nil{
sum+=l1.Val
l1 =l1.Next
}
if l2!=nil{
sum+=l2.Val
l2 = l2.Next
}
sum +=carry
carry =sum/10
sum = sum%10
cur.Next = &ListNode{sum,nil}
cur =cur.Next
}
if carry>0{
cur.Next =&ListNode{carry,nil}
}
return newHead.Next
}
