LeetCode 108. Convert Sorted Array to Binary Search Tree 题解

来源:互联网 发布:高中地理优化设计 编辑:程序博客网 时间:2024/06/05 08:16

题目链接:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/?tab=Description

本题的要求是:将升序的数组转化为高度平衡的二叉搜索树。

思路:使用递归求解,数组中间的元素作为root,左侧元素用来构造root的左子树,右侧元素用来构造root的右子树。如此递归下去。。。

对于生成的BST,经过中序遍历即可以得到升序的序列。


Java 代码如下:

public class Solution {// 使用给定的升序数组,构造出对应的高度平衡的二叉树public TreeNode sortedArrayToBST(int[] nums) {if (nums == null || nums.length == 0) {return null;}return buildBST(nums, 0, nums.length - 1);}public TreeNode buildBST(int[] nums, int left, int right) {if (right < left) {return null;}// 寻找root节点:root节点即为数组的中间数int mid = (right + left) / 2;TreeNode root = new TreeNode(nums[mid]);// 递归构造左子树root.left = buildBST(nums, left, mid - 1);// 递归构造右子树root.right = buildBST(nums, mid + 1, right);return root;}}

0 0
原创粉丝点击