Leet Code Daily 2024-05-07 - Double a Number Represented as a Linked List
Code
● ● ●c++/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
int doubleItInternal(ListNode* head) {
if (head == nullptr) {
return 0;
}
auto inc_val = doubleItInternal(head->next);
auto new_val = head->val * 2+ inc_val;
head->val = new_val % 10;
return (int)(new_val / 10);
}
ListNode* doubleIt(ListNode* head) {
auto inc_val = doubleItInternal(head);
return inc_val != 0 ? new ListNode(inc_val, head) : head;
}
};