How to prevent memory leaks in the below code? I added "delete sentinel" before return statement. But how to deal with the memory leak of these 2 lines d->next = new ListNode(sum % 10) and d->next = new ListNode(1)
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* c1 = l1; ListNode* c2 = l2; ListNode* sentinel = new ListNode(0); ListNode* d = sentinel; int sum = 0; while(c1 != NULL || c2 != NULL) { sum /=10; if(c1 != NULL){ sum += c1->val; c1 = c1->next; } if(c2!= NULL){ sum += c2->val; c2 = c2->next; } d->next = new ListNode(sum % 10); d = d->next; } if(sum /10 == 1){ d->next = new ListNode(1); } return sentinel->next; } };
new/deletebefore you can unleash them onto production code.