1. 程式人生 > 其它 >0002-Add Two Numbers

0002-Add Two Numbers

技術標籤:Daily Leetcode其他

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution
{ public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *result = new ListNode(0); ListNode *l3 = result; int agr = 0; while(nullptr != l1 && nullptr != l2){ l3->next = new ListNode(0);//需要new的時候再new一個 l3 = l3->next;
l3->val = l1->val + l2->val + agr; agr = 0; if(l3->val > 9){ l3->val = l3->val % 10; agr = 1; } l1 = l1->next; l2 = l2->next; } while(nullptr != l1 &&
nullptr == l2){ l3->next = new ListNode(0); l3 = l3->next; l3->val = l1->val + agr; agr = 0; if(l3->val > 9){ l3->val = l3->val % 10; agr = 1; } l1 = l1->next; } while(nullptr == l1 && nullptr != l2){ l3->next = new ListNode(0); l3 = l3->next; l3->val = l2->val + agr; agr = 0; if(l3->val > 9){ l3->val = l3->val % 10; agr = 1; } l2 = l2->next; } if(agr){//最後一位如果進位 l3->next = new ListNode(0); l3 = l3->next; l3->val = 1; } return result->next; } };