Leetcode 2. Add Two Numbers

来源:互联网 发布:毛周权力之争 知乎 编辑:程序博客网 时间:2024/04/28 22:56
/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {        if(!l1) return NULL;        int j=0;        int i=0;        ListNode* temp1=l1;        ListNode* temp2=l2;        ListNode* head=l1;        while(l1&&l2)        {            i=l1->val+l2->val+j;            j=i/10;            i=i%10;            l1->val=i;            temp1=l1;            temp2=l2;            l1=l1->next;            l2=l2->next;        }        if(!l1)        {            if(j==0)            {                temp1->next=l2;                return head;            }            else            {                temp1->next=l2;                while(j&&temp1->next)                {                    temp1=temp1->next;                    j=(temp1->val+1)/10;                    temp1->val=(temp1->val+1)%10;                }            }        }        else        {            if(j==0)            {                return head;            }            else            {                while(j&&temp1->next)                {                    temp1=temp1->next;                    j=(temp1->val+1)/10;                    temp1->val=(temp1->val+1)%10;                }            }        }        if(j)        {            ListNode* node=new ListNode(j);            temp1->next=node;        }        return head;    }};
0 0
原创粉丝点击