You are given the heads of two sorted linked lists list1 and list2.
Merge the two lists in a one sorted list. The list should be made by splicing together the nodes of the first two lists.
Return the head of the merged linked list.
Pseudocode
- traverse both lists simutaneously using a while loop
- create a new LL, linking it a copy of the list with smallest value
- advance BOTH
- linked list with the smaller value
- new LL
- if either one of the LL is null, attach the non-null LL to the new LL
- while loop terminates when both LLs are null
- return new LL.next
Input: list1 = [1,2,4], list2 = [1,3,4]
[0]
[0,1,3,4]
[0,1,1,2,4]
[0,1,1,2,4]
[0,1,1,2,3,4]
[0,1,1,2,3,4]
[0,1,1,2,3,4,4]
return result.next
[1,1,2,3,4,4]]