Add Two Numbers

来源:互联网 发布:深圳乐易网络是坑吗 编辑:程序博客网 时间:2024/06/03 04:22
/** * 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)     {        ListNode* newHead = new ListNode(-1);        ListNode* tail = newHead;        int carry = 0;        int val = 0;        while(l1 != NULL || l2 != NULL)        {            if(l1 != NULL && l2 != NULL)            {                int temp = l1->val + l2->val + carry;                val = temp%10;                carry = temp/10;            }            else            {                int temp = ( (l1 != NULL)?l1->val:l2->val ) + carry;                val = temp%10;                carry = temp/10;            }            ListNode* node = new ListNode(val);            tail->next = node;            tail = node;            l1 = (l1 != NULL)? l1->next:NULL;            l2 = (l2 != NULL)? l2->next:NULL;                    }        if (carry)        {            ListNode* node = new ListNode(1);            tail->next = node;        }                return newHead->next;    }};

0 0
原创粉丝点击