题解 | #链表相加(二)#

链表相加(二)

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头文件的应用(后续的其他有用的头文件在学习中)

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务