LeetCode题解-2-Add Two Numbers
2017-02-17 21:42
489 查看
解题思路
这个题目也是比较简单的。主要需要考虑的是如何处理l1和l2长度不一致的情况,进位的处理,还有特别考虑最后一次进位的情况。为了简化处理,我采用了一个哑结点作为head,用carry下次操作的进位值,默认是0.
然后从头开始遍历,每次的和等于上一次进位加上2个结点的值(如果存在的话),如果其中一个结点为空,就当值为0处理,直到2个结点都为空。最后2个结点为空时判断进位是否为1,如果是就增加多一个结点。
最终,返回哑结点的下一个结点就可以了。
参考源码
public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head = new ListNode(0); ListNode curr = head; int carry = 0; while (l1 != null || l2 != null) { int sum = carry; if (l1 != null) { sum += l1.val; l1 = l1.next; } if (l2 != null) { sum += l2.val; l2 = l2.next; } if (sum >= 10) { carry = 1; sum -= 10; } else { carry = 0; } curr.next = new ListNode(sum); curr = curr.next; } if (carry != 0) { curr.next = new ListNode(carry); } return head.next; } }
相关文章推荐
- LeetCode题解:Add Two Numbers
- 题解——Leetcode 2. Add Two Numbers 难度:Medium
- LeetCode题解--2-Add Two Numbers
- [Leetcode题解]002 Add Two Numbers
- leetcode2 Add Two Numbers题解
- LeetCode题解(Golang实现)--Add Two Numbers
- LeetCode题解:2. Add Two Numbers
- 【题解】【链表】【Leetcode】Add Two Numbers
- leetcode AddTwoNumbers 题解
- LeetCode题解:Add Two Numbers
- LeetCode题解 —— 2. Add Two Numbers
- LeetCode Add Two Numbers题解
- LeetCode题解——Add Two Numbers
- LeetCode题解(2)-- Add Two Numbers
- leetcode题解-2. Add Two Numbers
- leetcode 题解 Add Two Numbers(两个单链表求和)
- LeetCode题解 #2 Add Two Numbers
- 2. Add Two Numbers LeetCode题解
- leetcode 题解 2. Add Two Numbers
- [LeetCode]题解(python):002-Add Two Numbers