code:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
if nil == l1 {
return l2
} else if nil == l2 {
return l1
} else {
temp1, temp2 := l1, l2
var listRet, temp3 *ListNode
if l1.Val > l2.Val {
listRet, temp2 = l2, l2.Next
} else {
listRet, temp1 = l1, l1.Next
}
temp3 = listRet
for temp1 != nil || temp2 != nil {
if nil == temp1 {
temp3.Next = temp2
break
} else if nil == temp2 {
temp3.Next = temp1
break
} else {
if temp1.Val > temp2.Val {
temp3.Next, temp2 = temp2, temp2.Next
} else {
temp3.Next, temp1 = temp1, temp1.Next
}
temp3 = temp3.Next
}//else
}//for l1 != nil && l2 != nil
return listRet
}//else
}//func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode
result:
personal opinion:
easy…