将排序的数组插入二进制搜索树

编程入门 行业动态 更新时间:2024-10-23 17:23:10
本文介绍了将排序的数组插入二进制搜索树的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想实现一种将已排序的数组插入二叉搜索树中的算法,但我不想以仅长到一侧的树结束。

I want to implement an algorithm that inserts sorted arrays into binary search trees but I don't want ending up with a tree that only grows to one side.

您有任何想法吗?

谢谢。

推荐答案

给你一棵平衡树(在O(n)中):

This should give you a balanced tree (in O(n)):

  • 为数组中的中间元素构造一个节点并返回它 (这将是基本情况的根)。
  • 从数组左半部分的1.开始重复,将返回值分配给数组的左子元素
  • 从数组右半边的1.开始重复,将返回值分配给根的右子级。
  • 类似于Java的代码:

    Java-like code:

    TreeNode sortedArrayToBST(int arr[], int start, int end) { if (start > end) return null; // same as (start+end)/2, avoids overflow. int mid = start + (end - start) / 2; TreeNode node = new TreeNode(arr[mid]); node.left = sortedArrayToBST(arr, start, mid-1); node.right = sortedArrayToBST(arr, mid+1, end); return node; } TreeNode sortedArrayToBST(int arr[]) { return sortedArrayToBST(arr, 0, arr.length-1); }

    从此处。

    更多推荐

    将排序的数组插入二进制搜索树

    本文发布于:2023-11-30 11:48:34,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1649857.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:数组

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!