002

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8


输入:两个都是list,输出也是list

不会有括号


思路,简单的nodes

list


可以操作符重载,不过没有必要

要求是写函数

-------------------------------------------

在指针的地方卡住了

为什么会漂浮呢?

很多c++的东西忘记了

-------------------------------------------

好累啊

大脑怎么转不过来呢?

-----------------------------




class Solution {
public:
//ListNode *out;


    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        //ListNode *out;
        ListNode *h1,*h2,*ho;
        ListNode *out=new ListNode(0);
  ho=out;
        //ListNode *out=new ListNode(0);
        int tp;
        //cout<<l1->val<<" "<<l2->next->val<<endl;
        bool f=false;


        int val1=0,val2=0;
        for(h1=l1,h2=l2;h1!=NULL || h2!=NULL;){
       
        if(f)
        tp=1;
        else
        tp=0;
val1=0;
        val2=0;
        if(h1!=NULL){
        val1=h1->val;
        }
        if(h2!=NULL)
        val2=h2->val;
      


        tp=val1+val2+tp;


        if(tp>9)
        f=true;
        else
        f=false;


        tp=tp%10;
        //cout<<tp<<endl;
        out->next=new ListNode(tp);
       
        out=out->next;
        //cout<<ho->next->val;
        if(h1)
        h1=h1->next;
        if(h2)
        h2=h2->next;
        }
        if(f){
        tp=1;
        out->next=new ListNode(tp);
       out=out->next;
}
        //cout<<ho->next->val<<endl;
return ho->next;
    }
};
-----------------------
好捷豹菜啊
能不能
想清楚再写啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值