基于云平台网站群建设/微博推广技巧
https://leetcode-cn.com/problems/add-two-numbers-ii/
思路:加法自然要从最低位开始搞,那么可以先把给定的链表翻转一下再处理,但是这样做太麻烦了。用栈就可以了,注意进位问题。
/*** 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) {stack<int> s1,s2;while(l1){s1.push(l1->val);l1=l1->next;}while(l2){s2.push(l2->val);l2=l2->next;}ListNode *cur,*nxt=nullptr;if(s1.size()<s2.size())swap(s1,s2);int val,jw=0;while(!s1.empty()||!s2.empty()||jw){val=jw;if(!s1.empty())val+=s1.top(),s1.pop();if(!s2.empty())val+=s2.top(),s2.pop();jw=val/10;val%=10;cur=new ListNode(val);cur->next=nxt;nxt=cur;}return cur;}
};