Given the head of a singly linked list and a value, insert a new node with that value at the front of the list and return the new head.
Input
head: head of a singly linked list (may be null)
value: the value to insert
Output
The head of the updated list (the newly inserted node).
Examples
Example 1
Inputhead = [1, 2, 3], value = 3
Output[3, 1, 2, 3]
Example 2
Inputhead = [], value = 2
Output[2]
Constraints
0 <= list length <= 10^5.
Must run in O(1) time.