当前位置: 首页 > LeetCode > 正文

leetcode-两数相加

admin 发表于2021年2月17日 9:53
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
	if l1 == nil || l2 == nil{
		return nil
	}
	head := &ListNode{Val:0,Next:nil}
	current := head
	carry := 0
	for l1 !=nil || l2 != nil  {
		var x,y int
		if l1 == nil{
			x = 0
		}else {
			x = l1.Val
		}
		if l2 == nil{
			y = 0
		}else {
			y = l2.Val
		}
		current.Next = &ListNode{Val:(x+y+carry)%10, Next:nil}
		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:carry,Next:nil}
	}
	return head.Next
}

总结  carry代表进位,一位一位加即可,若其中一条链到底,均设置为0,直到两条都到底,结束,最后跳出循环再判断最后一位是否还有进位,有进位再添加一个节点记录。

全文完
本文标签: leetcode
本文标题: leetcode-两数相加
本文链接: http://blog.qqzzz.net/m/?post=103

〓 随机文章推荐

共有1105阅 / 0我要评论
  1. 还没有评论呢,快抢沙发~

发表你的评论吧返回顶部

!评论内容需包含中文

请勾选本项再提交评论