vaibhav1906

Add two numbers represented as Linkedlist

Nov 29th, 2021
1,204
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Solution {
  2. public:
  3.     ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
  4.        
  5.         ListNode * head = new ListNode();
  6.         ListNode * itr = head;
  7.         int c = 0;
  8.         while(l1!=NULL && l2!=NULL){
  9.            
  10.             ListNode * a = new ListNode();
  11.            
  12.             int sum = l1->val + l2->val + c;
  13.            
  14.             if(sum>9){
  15.                 a->val = sum%10;
  16.                 c = 1;
  17.             }
  18.             else{
  19.                 a->val = sum;
  20.                 c = 0;
  21.             }
  22.            
  23.             itr->next = a;
  24.             itr = itr->next;
  25.             l1 = l1->next;
  26.             l2 = l2->next;
  27.         }
  28.        
  29.         if(l2!=NULL){
  30.             while(l2!=NULL){
  31.                 ListNode * a = new ListNode();
  32.            
  33.                 int sum =  l2->val + c;
  34.            
  35.                 if(sum>9){
  36.                     a->val = sum%10;
  37.                     c = 1;
  38.                 }
  39.                 else{
  40.                     a->val = sum;
  41.                     c = 0;
  42.                 }
  43.            
  44.                 itr->next = a;
  45.                 itr = itr->next;
  46.                 l2 = l2->next;
  47.             }
  48.            
  49.         }
  50.        
  51.         if(l1!=NULL){
  52.             while(l1!=NULL){
  53.                 ListNode * a = new ListNode();
  54.            
  55.                 int sum =  l1->val + c;
  56.            
  57.                 if(sum>9){
  58.                     a->val = sum%10;
  59.                     c = 1;
  60.                 }
  61.                 else{
  62.                     a->val = sum;
  63.                     c = 0;
  64.                 }
  65.            
  66.                 itr->next = a;
  67.                 itr = itr->next;
  68.                 l1 = l1->next;
  69.             }
  70.            
  71.         }
  72.        
  73.         if(c==1){
  74.              ListNode * a = new ListNode();
  75.             a->val =c;
  76.             itr->next = a;
  77.         }
  78.        
  79.        
  80.         return head->next;
  81.     }
  82. };
RAW Paste Data