Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
- struct ListNode* l3 = malloc(sizeof(struct ListNode));
- struct ListNode* l4 = l3;
- l3->val = 0;
- l3->next = NULL;
- while(l1 != NULL && l2 != NULL) {
- int wholeP = (l1->val + l2->val + l3->val) / 10;
- l3->val = (l1->val + l2->val + l3->val) % 10;
- if(l1->next != NULL || l2->next != NULL || wholeP > 0) {
- l3->next = malloc(sizeof(struct ListNode));
- l3->next->val = wholeP;
- l3 = l3->next;
- }
- l1 = l1->next;
- l2 = l2->next;
- }
- while(l1 != NULL) {
- int wholeP = (l1->val + l3->val) / 10;
- l3->val = (l1->val + l3->val) % 10;
- if(l1->next != NULL || wholeP > 0) {
- l3->next = malloc(sizeof(struct ListNode));
- l3->next->val = wholeP;
- l3 = l3->next;
- }
- l1 = l1->next;
- }
- while(l2 != NULL) {
- int wholeP = (l2->val + l3->val) / 10;
- l3->val = (l2->val + l3->val) % 10;
- if(l2->next != NULL || wholeP > 0) {
- l3->next = malloc(sizeof(struct ListNode));
- l3->next->val = wholeP;
- l3 = l3->next;
- }
- l2 = l2->next;
- }
- l3->next = NULL;
- return l4;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement