作者:迷失刀 | 来源:互联网 | 2023-05-17 10:29
本文主要分享【现在是不是越来越多的大公司在使用golang语言】,技术文章【golang链表合并】为【weixin_39133690】投稿,如果你遇到golang相关问题,本文相关知识或能到你。现
本文主要分享【现在是不是越来越多的大公司在使用golang语言】,技术文章【golang 链表合并】为【weixin_39133690】投稿,如果你遇到golang相关问题,本文相关知识或能到你。
现在是不是越来越多的大公司在使用golang语言
合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的
例如:
输入:l1 = [1,2,8], l2 = [1,4,5,6]
输出:[1,1,2,4,5,6,8]
package main
import "fmt"
type LinkedListNode struct {
Value int
Next *LinkedListNode
}
func mergeTwoLists(list1 *LinkedListNode, list2 *LinkedListNode) *LinkedListNode {
if list1 == nil {
return list2
}
if list2 == nil {
return list1
}
if list1.Value < list2.Value {
list1.Next = mergeTwoLists(list1.Next, list2)
return list1
} else {
list2.Next = mergeTwoLists(list1, list2.Next)
return list2
}
}
func (n *LinkedListNode) PrintNode() {
for n != nil {
fmt.Printf("%d \t ", n.Value)
n = n.Next
}
fmt.Println()
}
func main() {
list1 := &LinkedListNode{
Value: 1,
Next: &LinkedListNode{
Value: 2,
Next: &LinkedListNode{
Value: 8,
},
},
}
list2 := &LinkedListNode{
Value: 1,
Next: &LinkedListNode{
Value: 4,
Next: &LinkedListNode{
Value: 5,
Next: &LinkedListNode{
Value: 6,
},
},
},
}
aa := mergeTwoLists(list1, list2)
aa.PrintNode()
}
结果:
PS C:\goproject\src\pingcaptest\mergelist\test> go run .\test.go
1 1 2 4 5 6 8
暑期编程PK赛
得CSDN机械键盘等精美礼品!
本文《golang 链表合并》版权归weixin_39133690所有,引用golang 链表合并需遵循CC 4.0 BY-SA版权协议。