gpt4 book ai didi

java - 从已排序的双向链表创建二叉搜索树

转载 作者:行者123 更新时间:2023-12-01 12:11:28 24 4
gpt4 key购买 nike

嘿伙计们,我正在研究编程面试问题,但我陷入了这个问题。

我正在尝试递归地执行此操作,但我不知道从哪里开始。

这是我迄今为止的算法:

 makeTree(head, tail){
nodeMid = list/2
root = nodeMid
root.left = makeTree(head, nodeMid)
root.right = makeTree(nodeMid, tail)

我的想法正确吗?任何意见都将受到高度赞赏。谢谢!

最佳答案

以下是一些要点:

  1. 获取链表的中间部分并将其设为根。

  2. 对左半部分和右半部分递归地执行相同的操作。

    • 获取左半部分的中间部分并将其设为根的左子节点 在第 1 步中创建。

    • 获取右半部分的中间部分,并将其设为右 child 在步骤 1 中创建的根目录。

时间复杂度:O(nLogn),其中n链表中的节点数。

关于java - 从已排序的双向链表创建二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27243102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com