二叉树——根据有序数组生成平衡搜索二叉树
2022-05-12 09:11
162 查看
1. 根据有序数组生成平衡搜索二叉树
1.1. 问题
给定一个有序数组,生成一个平衡搜索二叉树。
注:平衡二叉树的定义是,对于该二叉树的每个子树,该子树的左子树高度和右子树高度差在1之内。
1.2. 代码
这道题很简单,二分递归即可。
public TreeNode<Integer> buildBST(int[] arr) { return process(arr, 0, arr.length - 1); } private static TreeNode<Integer> process(int[] arr, int start, int end) { if (start > end) return null; int mid = (start + end) / 2; TreeNode<Integer> node = new TreeNode<>(arr[mid]); TreeNode<Integer> left = process(arr, start, mid - 1); TreeNode<Integer> right = process(arr, mid + 1, end); node.left = left; node.right = right; return node; }
相关文章推荐
- 二叉树问题---通过有序数组生成平衡搜索二叉树
- 通过有序数组生成平衡搜索二叉树
- 【IT笔试面试题整理】有序数组生成最小高度二叉树
- 根据后序数组重建搜索二叉树
- 有序单向链表转换为平衡搜索二叉树
- 二叉树 根据二叉树的前序数组和中序序遍历数组生成二叉树
- 【LeetCode101-110】二叉树对称及存储,前序中序遍历生成二叉树,中序后序生成二叉树,数组转化为AVL平衡树,判断二叉树是否平衡
- 二叉树问题---根据后序数组重建搜索二叉树
- 根据有序数组构建二叉树
- 根据二叉树的前序数组和中序数组生成二叉树
- 【BST】根据前序遍历的数组构造搜索二叉树
- 编写一个程序,把一个有序整数数组放到二叉树中
- leetcode之数组类之数组的旋转与分治类-----OJ 189/33/81/153/154 数组旋转 旋转数组搜索 88 有序数组合并 4 两个有序数组寻找第K个元素/中位数 35 寻找插入位置
- 根据有序链表构造平衡的二叉查找树
- [LeetCode] 从排序的单链表到平衡搜索二叉树
- 有序数组搜索二分法
- 360面试题——搜索二叉树转换成有序的双向链表
- c++中平衡搜索二叉树的应用
- 根据前序和中序数组构造二叉树(递归方法)
- 如何根据搜索页面内容得到的结果生成该元素的xpath路径