2_中等_两数相加
2 两数相加
https://leetcode.cn/problems/add-two-numbers/submissions/
算法1:利用伪头节点,开辟空间直接计算。
// date 2022-09-09
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
if l1 == nil {
return l2
}
if l2 == nil {
return l1
}
dummy := &ListNode{Val: -1}
pre := dummy
temp, carry := 0, 0
n1, n2 := 0, 0
for l1 != nil || l2 != nil || carry != 0 {
n1, n2 = 0, 0
if l1 != nil {
n1 = l1.Val
l1 = l1.Next
}
if l2 != nil {
n2 = l2.Val
l2 = l2.Next
}
temp = n1 + n2 + carry
carry = temp / 10
pre.Next = &ListNode{Val: temp%10}
pre = pre.Next
}
return dummy.Next
}
算法2:
最后更新于