Given the head of a singly linked list and an integer val, insert a new node with value val at the beginning of the list and return the new head.
The new node should become the first node, and its next pointer should point to the original head.
Input: Head of a singly linked list and an integer val to insert.
Output: Head of the updated linked list with the new node at the front.
Input: [2,3,4,5], 1
Output: [1,2,3,4,5]
Explanation: Create new node(1). Set newNode.next = head(2). Return newNode. Result: 1→2→3→4→5.Input: [10,20,30], 5
Output: [5,10,20,30]
Explanation: New node(5).next = node(10). New head = node(5). Result: 5→10→20→30.Input: [7], 0
Output: [0,7]
Explanation: New node(0).next = node(7). Return node(0). Result: 0→7.0 <= number of existing nodes <= 10^5-10^9 <= Node.val <= 10^9-10^9 <= val <= 10^9