將兩個升序鏈表合併爲一個新的 升序 鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。
示例:
輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
代碼實現
package main
import "fmt"
type ListNode struct {
Val int
Next *ListNode
}
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
var datas []int
for {
if l1 != nil {
datas = append(datas, l1.Val)
l1 = l1.Next
} else {
break
}
}
for {
if l2 != nil {
datas = append(datas, l2.Val)
l2 = l2.Next
} else {
break
}
}
for i := 0; i < len(datas)-1; i++ {
for j := 0; j < len(datas)-1-i; j++ {
if datas[j] > datas[j+1] {
datas[j], datas[j+1] = datas[j+1], datas[j]
}
}
}
if len(datas) == 0 {
return nil
} else {
l3 := &ListNode{datas[0], nil}
l3Node := l3
for i := 1; i < len(datas); i++ {
l3Node.Next=&ListNode{datas[i],nil}
l3Node=l3Node.Next
}
return l3
}
}