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)
}