### LeetCode Challenge #2816. Double a Number Represented as a Linked List

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:

```Input: head = [1,8,9]
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:

```Input: head = [9,9,9]
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.
##### Video Solution
###### Java Solution
```				```
class Solution {
ListNode pre = null ;

while(curr!=null){
ListNode temp = curr.next ;
curr.next = pre ;
pre = curr ;
curr = temp ;
}
return pre ;
}
ListNode dummy = new ListNode(-1);
ListNode ans = dummy ;
int carry = 0 ;

int d = sum%10 ;
carry = sum/10 ;
ListNode temp = new ListNode(d);
dummy.next = temp ;
dummy = dummy.next ;
}

if(carry>0){
ListNode temp = new ListNode(carry);
dummy.next = temp ;
}
ans = reverseLL(ans.next);
return ans ;
}
}
```
```