Day5: [LeetCode中等] 2. 两数相加
题源:
来自leetcode题库:
https://leetcode-cn.com/problems/add-two-numbers/
思路:
单纯的链表对应相加,考察链表基本功而已。
代码:
dirty code凑合看吧
/**
* 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) {
auto p=l1,q=l2;
ListNode *head=NULL,*rear=NULL;
bool first=true;
int jinwei=0,a,b;
while(p||q||jinwei){
if(!p) a=0;
else a=p->val;
if(!q) b=0;
else b=q->val;
int x=a+b+jinwei;
cout<<x<<endl;
ListNode* k=NULL;
if(x>=10) {
jinwei=1;
k=new ListNode(x-10);
}
else {
jinwei=0;
k=new ListNode(x);
}
if(first){
first=false;
head=k;
rear=k;
}else{
rear->next=k;
rear=rear->next;
}
if(p) p=p->next;
if(q) q=q->next;
}
return head;
}
};