Easy
Merge two sorted linked lists and return it as a sorted list. The list should be made by splicing together the nodes of the first two lists.
Example 1:

Input: l1 = [1,2,4], l2 = [1,3,4]
Output: [1,1,2,3,4,4]
Example 2:
Input: l1 = [], l2 = []
Output: []
Example 3:
Input: l1 = [], l2 = [0]
Output: [0]
Constraints:
[0, 50].-100 <= Node.val <= 100l1 and l2 are sorted in non-decreasing order.type ListNode struct {
Val int
Next *ListNode
}
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {
var sortedListNode, tail *ListNode = &ListNode{}, &ListNode{}
// Start sortedListNode and tail node at the same position
tail = sortedListNode
for list1 != nil && list2 != nil {
if list1.Val <= list2.Val {
tail.Next = list1
list1 = list1.Next
} else {
tail.Next = list2
list2 = list2.Next
}
// Progress the tail further
tail = tail.Next
}
if list1 != nil {
tail.Next = list1
}
if list2 != nil {
tail.Next = list2
}
return sortedListNode.Next
}