LeetCode.Problem2 Add two numbers

来源:互联网 发布:21天学通java这书怎样 编辑:程序博客网 时间:2024/05/16 15:02

话不多说,先贴代码。

ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {    int k;ListNode *l3;ListNode l4(0);    l3=&l4;    while(l1||l2){        if(l1==nullptr) {l1=new ListNode(0);}        else if(l2==nullptr) {l2=new ListNode(0);}        if(l1->val+l2->val>9){                k=(l1->val+l2->val)-10;l3->next=new ListNode(k);                if(l1->next) l1->next->val++;                else if(l2->next) l2->next->val++;                else {l3=l3->next;l3->next=new ListNode(1);break;}        }        else{k=l1->val+l2->val;l3->next=new ListNode(k);}        l1=l1->next;l2=l2->next;l3=l3->next;    }    l3=&l4;l3=l3->next;    return l3;}
感觉和别人对比起来,我洗的其实算是比较麻烦的代码,应该说是按照原始的数字加法法则应用出来的一个算法,主要在k值判断上,有算法用的是%10的方法,而我是减10进位。算法时间复杂度应该是O(m+n)

0 0
原创粉丝点击