leetcode add two number
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
if(l1==NULL){ return l2;}
if(l2==NULL){ return l1;}
int up=0;
ListNode *resList =NULL,*pNode = NULL,*pNext=NULL;
ListNode *p=l1,*q=l2;
while((p!=NULL)&&(q!=NULL)){
pNext = new ListNode(p->val + q->val +up);
up = pNext->val /10;
pNext->val = pNext->val %10;
if (resList==NULL){
resList = pNode = pNext;
}else{
pNode->next = pNext;
pNode = pNext;
}
p = p->next;
q = q->next;
}
while(p!=NULL){
pNext = new ListNode(p->val + up);
up = pNext->val /10;
pNext->val = pNext->val %10;
pNode->next = pNext;
pNode = pNext;
p = p->next;
}
while(q!=NULL){
pNext = new ListNode(q->val + up);
up = pNext->val /10;
pNext->val = pNext->val %10;
pNode->next = pNext;
pNode = pNext;
q = q->next;
}
if(up>0){
pNext = new ListNode(up);
pNode ->next =pNext;
}
return resList;
}
};
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
if(l1==NULL){ return l2;}
if(l2==NULL){ return l1;}
int up=0;
ListNode *resList =NULL,*pNode = NULL,*pNext=NULL;
ListNode *p=l1,*q=l2;
while((p!=NULL)&&(q!=NULL)){
pNext = new ListNode(p->val + q->val +up);
up = pNext->val /10;
pNext->val = pNext->val %10;
if (resList==NULL){
resList = pNode = pNext;
}else{
pNode->next = pNext;
pNode = pNext;
}
p = p->next;
q = q->next;
}
while(p!=NULL){
pNext = new ListNode(p->val + up);
up = pNext->val /10;
pNext->val = pNext->val %10;
pNode->next = pNext;
pNode = pNext;
p = p->next;
}
while(q!=NULL){
pNext = new ListNode(q->val + up);
up = pNext->val /10;
pNext->val = pNext->val %10;
pNode->next = pNext;
pNode = pNext;
q = q->next;
}
if(up>0){
pNext = new ListNode(up);
pNode ->next =pNext;
}
return resList;
}
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.