\\ C++
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* start=new ListNode(0);
ListNode* result=start;
int carry=0;
while(l1 || l2){
int val1 = l1? l1->val:0;
int val2 = l2? l2->val:0;
int sum=val1+val2+carry;
result->next= new ListNode(sum%10);
carry=sum/10;
result=result->next;
if(l1) l1=l1->next;
if(l2) l2=l2->next;
}
if(carry) result->next=new ListNode(1);
return start->next;
}
};
##Python3
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
start=result=ListNode(0)
carry=0
while l1 or l2 :
val1=val2=0
if l1:
val1=l1.val
l1=l1.next
if l2:
val2=l2.val
l2=l2.next
sum=val1+val2+carry
carry=sum//10
v=sum%10
result.next=ListNode(v)
result=result.next
if carry:
result.next=ListNode(1)
result=result.next
return start.next