1.new创造一个新的节点 2.一个链表含有首节点,尾节点,头节点指向首节点
new listnode(-1)相当于创造一个链表给他赋值
1.定义一个虚拟头节点,就不用特判当前点是不是第一个点了,可以随便赋值,反正也不会用
2.再创造一个尾节点,指向当前的尾节点
3.然后while循环遍历每一个链表,和进位t若不为0,则一直循环。
4.每次更新尾节点指向下一个节点。
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
auto dummy=new ListNode(-1),cur=dummy;
int t=0;
while(l1||l2||t){
if(l1)t+=l1->val,l1=l1->next;
if(l2)t+=l2->val,l2=l2->next;
cur=cur->next=new ListNode(t%10);
t/=10;
}
return dummy->next;
}
};