mirror of
https://github.com/chefyuan/algorithm-base.git
synced 2025-08-10 17:11:33 +00:00
添加Go语言题解
This commit is contained in:
@@ -267,3 +267,42 @@ class Solution {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Go Code:
|
||||
|
||||
```go
|
||||
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
|
||||
root := &ListNode{}
|
||||
temp := root
|
||||
// 用来保存进位值,初始化为0
|
||||
mod := 0
|
||||
for (l1 != nil || l2 != nil) {
|
||||
l1num := 0
|
||||
if l1 != nil { l1num = l1.Val }
|
||||
l2num := 0
|
||||
if l2 != nil { l2num = l2.Val }
|
||||
// 将链表的值和进位值相加,得到为返回链表的值
|
||||
sum := l1num + l2num + mod
|
||||
// 更新进位值,例18/10=1,9/10=0
|
||||
mod = sum / 10
|
||||
// 新节点保存的值,18%8=2,则添加2
|
||||
sum = sum % 10
|
||||
newNode := &ListNode{
|
||||
Val: sum,
|
||||
}
|
||||
temp.Next = newNode
|
||||
temp = temp.Next
|
||||
if l1 != nil { l1 = l1.Next }
|
||||
if l2 != nil { l2 = l2.Next }
|
||||
}
|
||||
if mod != 0 {
|
||||
newNode := &ListNode{
|
||||
Val: mod,
|
||||
}
|
||||
temp.Next = newNode
|
||||
}
|
||||
return root.Next
|
||||
}
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user