Return a LL of added digits from two LLs
Node* addDigits(Node* l1, Node* l2){
Node* dummy = new Node();
Node* temp = dummy;
// go till carry or l1 or l2 exists
int carry = 0;
while(l1 || l2 || carry){
int sum = 0;
if(l1){
sum += l1->data;
l1 = l1->next;
}
if(l2){
sum += l2->data;
l2 = l2->next;
}
sum += carry;
carry = sum/10; //first digit
// make a new node and chain it to earlier
Node* ans = new Node();
ans->data = sum%10;
temp->next = ans;
temp = temp->next;
}
return dummy->next;
}
Comments
Post a Comment