时月oe

博客园 首页 新随笔 联系 订阅 管理
  9 随笔 :: 0 文章 :: 0 评论 :: 919 阅读

(题目链接)[]https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/]

/**
 * 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;
 *     }
 * }
 */
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return solve(nums,0,nums.length - 1);
    }
    public TreeNode solve(int[] nums,int l,int r){
        if(l > r){
            return null;
        }

        int mid = r - ((r - l) / 2);
        TreeNode root = new TreeNode(nums[mid]);
        root.left = solve(nums,l,mid - 1);
        root.right = solve(nums,mid + 1,r);

        return root;
    }
}

数组是有序的,为了构造平衡二叉树,我们每次都取中间的数作为root结点的值

posted on   时月oe  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示