Untitled
unknown
c_cpp
4 years ago
1.3 kB
5
Indexable
/** * 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,*current,*ln1=l1,*ln2=l2; int carrier = 0,sum=0; current = result; while (ln1 != nullptr || ln2 !=nullptr || carrier != 0){ ListNode* resNext; if(ln1 != nullptr && ln2!= nullptr){ sum = ln1->val + ln2->val+carrier; } else if (ln1 == nullptr && ln2== nullptr) sum = carrier; else if (ln1 == nullptr ){ sum = ln2->val+carrier; } else{ sum = ln1->val + carrier; } carrier = sum/10; current->val = sum%10; current->next = resNext; current = resNext; } ListNode* dummy = result; while(dummy != nullptr){ cout<<dummy->val<<endl; dummy = dummy->next; } return result; } };
Editor is loading...