题解 | #链表相加(二)#
链表相加(二)
https://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b
#include<vector> #include<list> #include<iostream> class Solution { public: ListNode* addInList(ListNode* head1, ListNode* head2) { vector<int>lab,sob,tel; int a,b,c,d; auto e=head1; auto f=head2; a=0; while(e) { a++; e=e->next; } b=0; while(f) { b++; f=f->next; } auto g=head1; for(c=0;c<a;c++) { lab.push_back(g->val); g=g->next; } auto h=head2; for(d=0;d<b;d++) { sob.push_back(h->val); h=h->next; } int i=0; while(true) { int x=lab[a-1]+sob[b-1]; x+=i; int f=x%10; i=x/10; tel.push_back(f); if(a==1&&b>1) { a++; lab[a-2]=0; } if(b==1&&a>1) { b++; sob[b-2]=0; } a--; b--; if(a==0&&b==0) { break; } } if(i==1) { tel.push_back(1); } auto res=new ListNode(-1); auto ming=res; for(int g=tel.size();g>0;g--) { ming->next=new ListNode(tel[g-1]); ming=ming->next; } return res->next; } };
不喜欢多插入其他成员函数,单独的成员函数看对链表以及vector头文件的应用和list头文件的应用(后续的其他有用的头文件在学习中)