## DEV Community

MD ARIFUL HAQUE

Posted on • Updated on

# 2816. Double a Number Represented as a Linked List

2816. Double a Number Represented as a Linked List

Medium

You are given the `head` of a non-empty linked list representing a non-negative integer without leading zeroes.

Return the `head` of the linked list after doubling it.

Example 1:

• Output: [3,7,8]
• Explanation: The figure above corresponds to the given linked list which represents the number 189. Hence, the returned linked list represents the number 189 * 2 = 378.

Example 2:

• Output: [1,9,9,8]
• Explanation: The figure above corresponds to the given linked list which represents the number 999. Hence, the returned linked list reprersents the number 999 * 2 = 1998.

Constraints:

• The number of nodes in the list is in the range `[1, 104]`
• `0 <= Node.val <= 9`
• The input is generated such that the list represents a number that does not have leading zeros, except the number `0` itself.

Solution:

``````/**
* Definition for a singly-linked list.
* class ListNode {
*     public \$val = 0;
*     public \$next = null;
*     function __construct(\$val = 0, \$next = null) {
*         \$this->val = \$val;
*         \$this->next = \$next;
*     }
* }
*/
class Solution {

/**
* @return ListNode
*/

for (\$curr = \$head; \$curr != null; \$curr = \$curr->next) {
\$curr->val *= 2;
\$curr->val %= 10;
if (\$curr->next && \$curr->next->val >= 5)
++\$curr->val;
}