Advertisement
Guest User

leetcode - Add Two Numbers

a guest
Feb 2nd, 2018
3,033
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
  2.     struct ListNode* l3 = malloc(sizeof(struct ListNode));
  3.     struct ListNode* l4 = l3;
  4.  
  5.     l3->val = 0;
  6.     l3->next = NULL;
  7.    
  8.     while(l1 != NULL && l2 != NULL) {
  9.         int wholeP = (l1->val + l2->val + l3->val) / 10;
  10.        
  11.         l3->val = (l1->val + l2->val + l3->val) % 10;
  12.         if(l1->next != NULL || l2->next != NULL || wholeP > 0) {
  13.             l3->next = malloc(sizeof(struct ListNode));
  14.             l3->next->val = wholeP;
  15.             l3 = l3->next;
  16.         }
  17.  
  18.         l1 = l1->next;
  19.         l2 = l2->next;
  20.     }
  21.  
  22.     while(l1 != NULL) {
  23.         int wholeP = (l1->val + l3->val) / 10;
  24.        
  25.         l3->val = (l1->val + l3->val) % 10;
  26.         if(l1->next != NULL || wholeP > 0) {
  27.             l3->next = malloc(sizeof(struct ListNode));
  28.             l3->next->val = wholeP;
  29.             l3 = l3->next;
  30.         }
  31.         l1 = l1->next;
  32.     }
  33.     while(l2 != NULL) {
  34.         int wholeP = (l2->val + l3->val) / 10;
  35.    
  36.         l3->val = (l2->val + l3->val) % 10;
  37.         if(l2->next != NULL || wholeP > 0) {
  38.             l3->next = malloc(sizeof(struct ListNode));
  39.             l3->next->val = wholeP;
  40.             l3 = l3->next;
  41.         }
  42.         l2 = l2->next;
  43.     }
  44.     l3->next = NULL;
  45.  
  46.     return l4;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement