/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func sortedListToBST(head *ListNode) *TreeNode {
var nodes []ListNode
for head !=nil {
nodes= append(nodes,*head)
head = head.Next
}
return builder(nodes,0,len(nodes)-1)
}
func builder(nodes []ListNode,left,right int)*TreeNode{
if left >right {
return nil
}
mid :=(left+right+1)/2
root :=&TreeNode{nodes[mid].Val,nil,nil}
root.Left = builder(nodes,left,mid-1)
root.Right = builder(nodes,mid+1,right)
return root
}
有序链表转换二叉搜索树 golang
最新推荐文章于 2025-12-01 14:01:31 发布
本文详细介绍了如何使用Golang将一个有序链表转换为二叉搜索树。通过讲解关键步骤和算法思想,帮助读者理解数据结构与算法的应用。


356

被折叠的 条评论
为什么被折叠?



