/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
var l = &ListNode{}
var curr = l // curr是指向l的指针,最后返回的是l的Next,curr的val并不关心
for l1!=nil && l2!=nil{
if l1.Val<=l2.Val{
// l1小则指向l1
curr.Next = l1
// curr和l1向后移动
curr = curr.Next
l1 = l1.Next
}else{
// l2小则指向l2
curr.Next = l2
// curr和l2向后移动
curr = curr.Next
l2 = l2.Next
}
}
if l1==nil{
// l1走完了,直接拼上l2
curr.Next = l2
}else{
// l2走完了,直接拼上l1
curr.Next = l1
}
return l.Next
}