Hello
this is title
Code Test
package main
import (
"fmt"
)
// 定义链表节点结构
type ListNode struct {
Val int
Next *ListNode
}
// 合并两个升序链表
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
// 创建一个哨兵节点,方便处理
dummy := &ListNode{}
current := dummy
// 遍历两个链表,直到其中一个为空
for l1 != nil && l2 != nil {
if l1.Val < l2.Val {
current.Next = l1
l1 = l1.Next
} else {
current.Next = l2
l2 = l2.Next
}
current = current.Next
}
// 将剩余的链表接到新链表的末尾
if l1 != nil {
current.Next = l1
} else {
current.Next = l2
}
// 返回合并后的链表头节点
return dummy.Next
}
// 辅助函数:打印链表
func printList(node *ListNode) {
for node != nil {
fmt.Printf("%d -> ", node.Val)
node = node.Next
}
fmt.Println("nil")
}
// 主函数
func main() {
// 示例链表1
l1 := &ListNode{Val: 1}
l1.Next = &ListNode{Val: 2}
l1.Next.Next = &ListNode{Val: 4}
// 示例链表2
l2 := &ListNode{Val: 1}
l2.Next = &ListNode{Val: 3}
l2.Next.Next = &ListNode{Val: 4}
// 合并两个链表
mergedList := mergeTwoLists(l1, l2)
// 打印合并后的链表
printList(mergedList)
}