lc 2.两数相加(链表)

    科技2022-07-21  99

    /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *p=l1, *q=l2, *l3=new ListNode(-1), *x=l3; int c=0; //进位 int sum; while(p||q){ sum=0; //记得每次sum归0 if(p){ sum+=p->val; p=p->next; //如果不为空,再往后 } if(q){ sum+=q->val; q=q->next; } sum+=c; if(c==1) c=0; if(sum>=10) c=1; x->next=new ListNode(sum); x=x->next; } if(c==1) x->next=new ListNode(1); //最后有进位,要添一个结点 return l3->next; //返回l3->next,l3相当于头结点 } };

     

    Processed: 0.012, SQL: 8