# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Plus:
def plusAB(self, a, b):
# write code here
s=ListNode(0)
h=s
c=0
while a!=None or b!=None:
s.next=ListNode(0)
s=s.next
if a==None:
na=0
else:
na=a.val
a=a.next
if b==None:
nb=0
else:
nb=b.val
b=b.next
s.val=(na+nb+c)%10#要考虑进位
c=int((na+nb+c)/10)
if c>0:
s.next=ListNode(0)
s=s.next
s.val=c
return h.next
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};*/
class Plus {
public:
ListNode* plusAB(ListNode* a, ListNode* b) {
// write code here
ListNode* Head=new ListNode(-1);
ListNode* p=Head;
ListNode* node=nullptr;
int c=0,sum,val_a,val_b;
ListNode* pa=a,*pb=b;
while(pa!=nullptr || pb!=nullptr || c!=0){
val_a=(pa==nullptr?0:pa->val);
val_b=(pb==nullptr?0:pb->val);
sum=val_a+val_b+c;
c=sum/10;
node=new ListNode(sum%10);
p->next=node;
p=node;
pa=(pa==nullptr?nullptr:pa->next);
pb=(pb==nullptr?nullptr:pb->next);
}
return Head->next;
}
};