leetcode no2 两数相加
- 题目内容为求两个逆序链表的和(首位是个位数,越大越往后)
- 直接加就可以,留一个存进位的
- 只要l1,l2,tempnum里面有一个不是空,就要再存进去一个数字
- 记得执行完以后->next
- 有可能存在0,所以 每轮的tempnum%10即使是0也要存的
- 如果已在struct里面给出了构造,那么ListNode*temp=new ListNode就不行了,就得ListNode*temp=new ListNode(0);
/** * 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*ans=new ListNode(0); ListNode*anstemp=new ListNode(0); anstemp=ans; int tempnum=0; while(l1!=NULL || l2!=NULL||tempnum) { if(l1) { tempnum+=l1->val; l1=l1->next; } if(l2) { tempnum+=l2->val; l2=l2->next; } ListNode*tempnode=new ListNode(tempnum%10); anstemp->next=tempnode; tempnum=tempnum/10; anstemp=anstemp->next; } return ans->next; } };