Code前端首页关于Code前端联系我们

LeetCode插图:将有序数组转换为二叉搜索树

terry 2年前 (2023-09-27) 阅读数 107 #数据结构与算法

1。查询

返回一个整数数组 numbers ,其中元素 按升序排列 ♓❓ 转换 二叉搜索树。

高度平衡二叉树是满足“每个节点左右子树高度差的绝对值不超过1”的二叉树。

2。示例

2.1>示例1:

图解LeetCode:将有序数组转换为二叉搜索树

输入】数字 = [-10,-3,0,5,9]
ut 【 】[0 ,- 3 ,9,-10,null,5]
说明】[0,-10,5,null,-3,null,9]也是正确答案:

2.2>示例 2:

图解LeetCode:将有序数组转换为二叉搜索树

[ 输入]数字 = [1,3]
[
[
[]♷

class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return sort(nums, 0, nums.length - 1);
    }
    public TreeNode sort(int[] nums, int start, int end) {
        if (start > end) return null;
        int mid = (start + end) / 2;  // nums数组的寻找中心点
        TreeNode node = new TreeNode(nums[mid]); 
        node.left = sort(nums, start, mid - 1); // 获得node的左节点
        node.right = sort(nums, mid + 1, end); // 获得node的右节点
        return node;
    }
}
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
图解LeetCode:将有序数组转换为二叉搜索树 [ ] 说明 ][1,null,3] 和 [3,1] 都是非常平衡的二叉搜索树。

提示:

  • 1

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门