同样属于比较简单的题,注意一下进位就行了。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode l3 = null;
ListNode l5 = null;
int l1Val, l2Val;
int carryBit = 0;
int temp;
while(l1 != null || l2 != null)
{
if(l1 == null) l1Val = 0; else{l1Val = l1.val; l1 = l1.next;}
if(l2 == null) l2Val = 0; else{l2Val = l2.val; l2 = l2.next;}
temp = l1Val + l2Val + carryBit;
carryBit = temp / 10;
temp = temp % 10;
if(l3 != null)
{
ListNode l4 = new ListNode(temp);
l3.next = l4;
l3 = l3.next;
}
else
{
l3 = new ListNode(temp);
l5 = l3;
}
}
if(carryBit > 0)
{
ListNode l4 = new ListNode(carryBit);
l3.next = l4;
l3 = l3.next;
}
return l5;
}
}