【LeetCode】2. Add Two Numbers

传送门:https://leetcode.com/problems/add-two-numbers/description/

解析:模拟竖式加法即可,注意进位。

 

	carry := 0
	var head *ListNode
	var rear *ListNode

	for nil != l1 || nil != l2 {
		sum := 0
		if nil != l1 {
			sum += l1.Val
			l1 = l1.Next
		}
		if nil != l2 {
			sum += l2.Val
			l2 = l2.Next
		}
		
		sum += carry
		carry = 0

		if sum >= 10 {
			carry = 1
			sum %= 10
		}

		data := &ListNode{
			sum,
			nil,
		}

		if nil == head {
			head = data
			rear = data
		} else {
			rear.Next = data
			rear = data
		}
	}

	if 0 != carry {
		rear.Next = &ListNode {
			1,
			nil,
		}
	}

	return head

  

posted on 2018-01-30 18:10  小问号???  阅读(107)  评论(0)    收藏  举报

导航