Golang | Leetcode Golang题解之第109题有序链表转换二叉搜索树

题目:

题解:

Go 复制代码
var globalHead *ListNode

func sortedListToBST(head *ListNode) *TreeNode {
    globalHead = head
    length := getLength(head)
    return buildTree(0, length - 1)
}

func getLength(head *ListNode) int {
    ret := 0
    for ; head != nil; head = head.Next {
        ret++
    }
    return ret
}

func buildTree(left, right int) *TreeNode {
    if left > right {
        return nil
    }
    mid := (left + right + 1) / 2
    root := &TreeNode{}
    root.Left = buildTree(left, mid - 1)
    root.Val = globalHead.Val
    globalHead = globalHead.Next
    root.Right = buildTree(mid + 1, right)
    return root
}
相关推荐
月明长歌8 分钟前
【码道初阶】LeetCode 622:设计循环队列:警惕 Rear() 方法中的“幽灵数据”陷阱
java·算法·leetcode·职场和发展
Jeremy爱编码42 分钟前
leetcode热题路径总和 III
算法·leetcode·职场和发展
ZNineSun1 小时前
Go的Http框架:gin
http·golang·gin
周杰伦_Jay1 小时前
【后端开发语言对比】Java、Python、Go语言对比及开发框架全解析
java·python·golang
Clarence Liu2 小时前
redis (2) 一文读懂redis的四种模式 客户端分析 以go-redis为例
redis·golang·bootstrap
古城小栈2 小时前
Go 语言 ARM64 架构优化:边缘计算场景适配
架构·golang·边缘计算
sheeta19982 小时前
LeetCode 每日一题笔记 日期:2025.12.14 题目:2147.分隔长廊的方案数
linux·笔记·leetcode
古城小栈2 小时前
Go 1.25 新特性实战:greenteagc 垃圾收集器性能调优
golang
Kiri霧2 小时前
Go 字符串格式化
开发语言·后端·golang
古城小栈2 小时前
2025 Go 语言生态:从云原生到边缘计算
云原生·golang·边缘计算