题解_C

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*///方法一:递归法
//1,定位根节点
//2,根节点左边作为左支递归处理
//3,根节点右边作为右支递归处理struct TreeNode* sortedArrayToBST(int* nums, int numsSize){int     iRoot       = 0;struct TreeNode*    pCurNode    = NULL;//1,结束条件if((NULL == nums) || (0 == numsSize)) return NULL;//2,初始化pCurNode = (struct TreeNode*)malloc(sizeof(struct TreeNode));
//    memset(pCurNode, 0x00, sizeof(struct TreeNode));//3,定位根节点iRoot = numsSize / 2;//4,递归处理左右支pCurNode->val = nums[iRoot];pCurNode->left = sortedArrayToBST(&nums[0], iRoot);pCurNode->right = sortedArrayToBST(&nums[iRoot + 1], numsSize - iRoot - 1);return pCurNode;
}

题解_Java_1

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode sortedArrayToBST(int[] nums) {return helper(nums, 0, nums.length - 1);}public TreeNode helper(int[] nums, int left, int right) {if (left > right) {return null;}// 总是选择中间位置左边的数字作为根节点int mid = (left + right) / 2;TreeNode root = new TreeNode(nums[mid]);root.left = helper(nums, left, mid - 1);root.right = helper(nums, mid + 1, right);return root;}
}

题解_Java_2

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode sortedArrayToBST(int[] nums) {return dfs(nums, 0, nums.length - 1);}private TreeNode dfs(int[] nums, int lo, int hi) {if (lo > hi) {return null;} // 以升序数组的中间元素作为根节点 root。int mid = lo + (hi - lo) / 2;TreeNode root = new TreeNode(nums[mid]);// 递归的构建 root 的左子树与右子树。root.left = dfs(nums, lo, mid - 1);root.right = dfs(nums, mid + 1, hi); return root;}
}

LeetCode_108.将有序数组转换为二叉搜索树相关推荐

  1. 将字符串转换为数组_LeetCode 树 108.将有序数组转换为二叉搜索树

    7(108) 将有序数组转换为二叉搜索树 描述 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 ...

  2. 数据结构与算法--力扣108题将有序数组转换为二叉搜索树

    力扣108提将有序数组转换为二叉搜索树 近一年都比较关注算法相关的知识,也刷了不少题,之前的文章中大多也是算法相关的文章,但是感觉每次遇到树相关的题型都不能应对自如,因此还是有必要在相关知识上下功夫, ...

  3. [leetcode-108,109] 将有序数组转换为二叉搜索树

    109. 有序链表转换二叉搜索树 Given a singly linked list where elements are sorted in ascending order, convert it ...

  4. 20200703:将有序数组转换为二叉搜索树(leetcode108)

    将有序数组转换为二叉搜索树 题目 思路与算法 代码实现 复杂度分析 题目 将有序数组转换为二叉搜索树 思路与算法 乍一看很简单,实际也很简单,今天的动态规划没做出来,就刷每日一题好了.保证平衡的最简单 ...

  5. 20190917:(leetcode习题)将有序数组转换为二叉搜索树

    将有序数组转换为二叉搜索树 题目 大致思路 代码实现 题目 大致思路 将有序数组转换为二叉平衡树,即左边的数和右边数的差值不超过1,那么root节点应该为正中间的数,然后左边的剩余的中间为root.l ...

  6. laravel数组转换为字符串_LeetCode刷题实战108:将有序数组转换为二叉搜索树

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  7. Suzy找到实习了吗 Day23 | 二叉树最后一节!669. 修剪二叉搜索树,108. 将有序数组转换为二叉搜索树,538. 把二叉搜索树转换为累加树

    669. 修剪二叉搜索树 题目 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high.通过修剪二叉搜索树,使得所有节点的值在[low, high]中.修剪树 不应该 改变保 ...

  8. LeetCode(Python)—— 将有序数组转换为二叉搜索树(简单)

    将有序数组转换为二叉搜索树 概述:给你一个整数数组 nums ,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树.高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 ...

  9. leetcode刷题记录--数据结构;深度优先搜索算法;二叉树;平衡树;1020. 飞地的数量;1669. 合并两个链表;108. 将有序数组转换为二叉搜索树

    1020. 飞地的数量 难度中等131 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格.1 表示一个陆地单元格. 一次 移动 是指从一个陆地单元格走到另一个相邻(上 ...

最新文章

  1. 又出现依赖冲突?试试 IDEA 解决 Maven 依赖冲突的高能神器!
  2. java迭代器的使用场景_集合遍历利器 -- 迭代器模式 介绍 使用场景案例 优缺点及程序演示...
  3. 不同系统之间数据的交互
  4. OS X快捷键小技巧
  5. ASP.NET Core中Ocelot的使用:基于服务发现的负载均衡
  6. ssm(Spring+Spring mvc+mybatis)Dao层配置sql的文件——DeptDaoMapper.xml
  7. [安全模型][Cambria Math][A][]敌手A-> 怎么打出来?
  8. 手机号码归属地及运营商查询
  9. 漂亮的带分步说明的 VBA 自制进度条
  10. 关于配置中心的几个问题
  11. 【云原生-K8s】cka认证2022年12月最新考题及指南
  12. 计算机不上电维修,h61系列主板不上电不开机芯片级维修教程-电脑主板芯片级维修.docx...
  13. 阿里云ECS和WorldPress + Nginx实现固定连接策略
  14. gazebo设置_gazebo的学习与使用
  15. 1dB增益压缩点概述及测试
  16. 高德车载导航Android平台DR回放技术方案
  17. 「聚变」前端 客户端,第十七届 D2 终端技术大会来了!
  18. python使用密钥加密的表述_python 利用Crypto进行RSA解密加密文件
  19. 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅amp;消费
  20. 跟着楠哥学java(javase笔记)

热门文章

  1. 解决 Windows To Go U盘没有盘符的问题
  2. oracle分页查询数据(收藏)
  3. 弹出层之2:JQuery.BlockUI
  4. 病例对照研究和队列研究详解
  5. pythonos模块介绍_Python os模块介绍
  6. Linux下系统函数open,read,write,lseek函数
  7. x86、amd64、x86-64、x64以及ia64的基本概念
  8. java 线程执行完就会回收吗_Java线程池技术Executors的这个坑你踩过吗?
  9. Python 数据分析与展示笔记1 -- Numpy 基础
  10. 校招 | 第四范式 Plan1956 招募计划正式开启!