还行 不算难 用栈把链表中的值全部存进去就行了 逆序嘛 栈还是很合适的
/** * 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) { if(l1->val==0){ return l2; } if(l2->val==0){ return l1; } stack<int> sta1,sta2; while(l1!=nullptr){ sta1.push(l1->val); l1=l1->next; } while(l2!=nullptr){ sta2.push(l2->val); l2=l2->next; } int c=0; ListNode* ans=nullptr; while(!sta1.empty()||!sta2.empty()){ int a=0,b=0; if(!sta1.empty()){ a=sta1.top(); sta1.pop(); } if(!sta2.empty()){ b=sta2.top(); sta2.pop(); } int sum=a+b+c; c=sum/10; auto cur=new ListNode(sum%10); cur->next=ans; ans=cur; } if(c){ auto cur=new ListNode(c); cur->next=ans; ans=cur; } return ans; } };