2.两数相加
1.类似于双指针
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
if l1==nil{
return l2
}
if l2==nil{
return l1
}
ans:=&ListNode{Val:0} //用于作为返回结果
p:=ans //用于作为后续索引指针
add:=0
for l1!=nil && l2!=nil{
tmp:=l1.Val+l2.Val+add
p.Next=&ListNode{Val:tmp%10}
add=tmp/10
p=p.Next
l1=l1.Next
l2=l2.Next
}
for l1!=nil{
tmp:=l1.Val+add
p.Next=&ListNode{Val:tmp%10}
add=tmp/10
p=p.Next
l1=l1.Next
}
for l2!=nil{
tmp:=l2.Val+add
p.Next=&ListNode{Val:tmp%10}
add=tmp/10
p=p.Next
l2=l2.Next
}
if add!=0{ //最后需要判断这个进位是否还存在
p.Next=&ListNode{Val:add}
return ans.Next
}
return ans.Next
}

浙公网安备 33010602011771号