您的位置:首页 > 其它

二叉树——根据有序数组生成平衡搜索二叉树

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: