Golang:
思路:这里可以取巧,拿到两个链表里所有的值,然后直接排序,用一个新的链表存一下并返回即可,但这种解法显然少了些营养。所以我们通过分别对两个链表进行比较,比较时,值小的那个被存进链表,然后该链表向后一格再做比较,直至某一条链表到达尾部。
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
var head =&ListNode{Val:0}
res:=head
for{
if l1==nil{
res.Next=l2
break
}
if l2==nil {
res.Next=l1
break
}
if l1!=nil&&l2!=nil{
if l1.Val>l2.Val{
test:=ListNode{Val:l2.Val}
res.Next=&test
l2=l2.Next
}else{
res.Next=&ListNode{Val:l1.Val}
l1=l1.Next
}
res=res.Next
}
}
return head.Next
}
有疑问加站长微信联系(非本文作者)