Double a Number Represented as a Linked List
MediumLinked ListMathStack
Solution
import { ListNode } from '@algorithm/lib';
export function doubleIt(head: ListNode | null): ListNode | null {
if (!head) {
return head;
}
const newHead = head.val > 4 ? new ListNode(0, head) : head;
let currentNode: ListNode | null = newHead;
while (currentNode) {
currentNode.val = (currentNode.val * 2) % 10;
if (currentNode.next && currentNode.next.val > 4) {
currentNode.val += 1;
}
currentNode = currentNode.next;
}
return newHead;
}