题目

add-two-numbers


算法

直接模拟


代码


struct ListNode{

    int val;

    ListNode * next;

    ListNode(int x):val(x),next(NULL) {}

};

//尾插法

ListNode* addValAndCreateNewNode(ListNode* cur,int val){

    cur->val=val;

    cur->next=new ListNode(0);

    return cur->next;

}

class Solution{

public:

    ListNode* addTwoNumbers(ListNode* l1,ListNode* l2){ 

        ListNode* res=new ListNode(-1);

        ListNode* cur=res;

        int carry=0;

        while(l1||l2){

            int n1=(l1?l1->val:0);

            int n2=(l2?l2->val:0);

            int sum=n1+n2+carry;

            carry=sum/10;

            cur->next=new ListNode(sum%10);

            cur=cur->next;

            if(l1) l1=l1->next;

            if(l2) l2=l2->next;

        }

        if(carry) cur->next=new ListNode(1);

        return res->next

    }

};

results matching ""

    No results matching ""