../ Competitive Programming
-rw-r--r--aguang931 B1 min read

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;
    }
};

COMMAND INTERFACE

↑ ↓ navigate · Enter execute · Esc exit · try “whoami”

Loading filesystem…

:help aguang.xyz

A personal website disguised as an operating system.

Ctrl / Cmd + K
Command palette + full-text search
Tab / Shift + Tab
Move between links and controls
Enter
Open a focused link or search result
↑ / ↓ in search
Navigate search results
In a directory filter
Enter/Done or ↓ focuses a result; Esc clears the filter
Esc
Clear a search or close a window