标签:leetcode
https://oj.leetcode.com/problems/add-two-numbers/
http://fisherlei.blogspot.com/2013/01/leetcode-add-two-numbers-solution.html
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
// 同时遍历两个list 直至两个list都为空
// 确定两个值 如果某listnode为空 默认为0
// 计算 newnode的值 和carry
// 完成遍历,如果carry==true, 新增一个head
ListNode toReturn = null;
ListNode lastNode = null;
int carry = 0;
while (l1 != null || l2 != null)
{
int v1 = 0;
if (l1 != null)
{
v1 = l1.val;
l1 = l1.next;
}
int v2 = 0;
if (l2 != null)
{
v2 = l2.val;
l2 = l2.next;
}
int sum = v1 + v2 + carry;
ListNode newNode = new ListNode(sum % 10);
carry = sum >= 10 ? 1 : 0;
if (lastNode != null)
{
lastNode.next = newNode;
}
lastNode = newNode;
if (toReturn == null)
toReturn = newNode;
}
if (carry == 1)
{
ListNode newNode = new ListNode(1);
lastNode.next = newNode;
}
return toReturn;
}
}标签:leetcode
原文地址:http://7371901.blog.51cto.com/7361901/1598393