LeetCode练习题:建立最小高度二叉树

LeetCode 最小高度树 对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。 格式 该图包含 n 个节点,标记为 0 到 n - 1。给定数字 n 和一个无向边 edges 列表(每一个边都是一对标签)。 你可以假设没有重复的边会出现在 edges 中。由于所有的边都是无向边,... 阅读详情

题干:

给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。

示例:

给定有序数组: [-10,-3,0,5,9],

一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:

      0 
     / \ 
   -3   9 
   /   / 
 -10  5 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-height-tree-lcci

Python解法:

"""
Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
"""


class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
        n = len(nums)
        if not n:
            return
        mid = len(nums)//2	#计算中值
        root=TreeNode(nums[mid])	#找出中值,树化,并赋值给root
        root.left=self.sortedArrayToBST(nums[:mid])	#把列表中根值左边的数值拿出来做递归创建左子树
        root.right=self.sortedArrayToBST(nums[mid+1:])	#把列表中根值右边的数值拿出来做递归创建左子树
        return root

在做这道题时,在网上找了一个关于二叉树的详解(Python版),这里把链接发出来,便于翻找和巩固。

链接:二叉树的Python实现

全网详细解决Client does not support authentication protocol requested by server;consider upgrading Mysql c 全网详细解决1251 - Client does not support authentication protocol requested by server; consider upgrading Mysql client。 阅读详情

相关推荐

FFmpeg音频转换避坑实录:为什么VOS的REC转MP3比WAV转MP3体积小一半?

本文深入解析了FFmpeg在VOS系统REC格式音频转换中的优化技巧,揭示了REC转MP3比WAV转MP3体积小一半的原因。通过分析REC格式的压缩特性、转码参数陷阱及FFmpeg调优方法,帮助开发者实现高效音频转换,显著降低存储成本。

weixin_30752699的博客 526

程序员面试金典: 9.4树与图 4.3给定一个有序整数数组,元素各不相同且按升序排列,创建一颗高度最小的二叉查找树。

#include #include using namespace std; /* 问题:给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一颗高度最小的二叉查找树。 分析:二叉查找树是左孩子<结点<右孩子。二叉查找树关键的部分应该是调整树的结点,使得平衡。高度最小 的二叉查找树,应该是平衡的二叉查找树。 中序遍历的结果是:左中右,那么遍历 问题转化为如何

qingyuanluofeng的专栏 762

【转载】参数估计(Parameter Estimation):频率学派(最大似然估计MLE、最大后验估计MAP)与贝叶斯学派(贝叶斯估计BPE)

基础 频率学派与贝叶斯学派 http://www.douban.com/group/topic/16719644/ http://www.zhihu.com/question/20587681 最大似然估计(Maximum likelihood estimation,MLE) http://baike.baidu.com/view/1918804.htm http://baike.baidu.co

影 的专栏 3413

最小高度树Java版本(力扣)

最小高度树 给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 题意:让我们根据给的有序数组,创建一个高度最小的二叉树。 思路:递归求解,sortedArrayToBST方法中传入的数组,我们取数组的中间值为根节点,

『愚』的博客 3726

XGBoost的简单安装及入门使用

XGBoost安装及简单入门 XGBoost支持多种操作系统,如Windows, Linux, MacOS等,并支持多种语言版本,如Python, R, Scale, Java等。XGBoost的安装方式一般有两种,一种是直接通过pip安装(适合用于Python),另外一种是通过源码编译安装 1、通过pip安装 通过pip安装Python包既简单又方便,只需执行如下的命令: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xgboost 使用

qq_41513230的博客 3万+

Ubuntu AX200 iwlwifi-cc-46.3cfab8da.0.tgz无法下载的解决办法

AX200 iwlwifi-cc-46.3cfab8da.0.tgz 无法下载网页出问题使用 其他方法来进行但是前提还是有网络。

chen20170325的博客 1039

最小高度树

最小高度树 题目描述:   给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。 原题链接 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 题解:(数组切割+递归) 思路分析:   那如何保证高度最小呢?当树中的任意结点的左右子树高度差都不超过 1 时,整棵树的深

qq_43899283的博客 250

Fluent求解器——湍流参数的设置

Fluent湍流参数的介绍和设置。

Ronko_G的博客 4万+

LeetCode-七进制数、最小高度二叉搜索树

只是为了记录每天的练习(要好好加油啊呜呜呜现在的我还太拉了 思路很直接啊……就是转进制+数字转字符串。 class Solution { public: string convertToBase7(int num) { if(num == 0) //特殊情况 return "0"; const int system = 7;//使其普遍适用于n进制 bool flag;//记录num的正负性 flag

哼 7062

AI应用架构师实战:半导体器件仿真AI智能体系统搭建

半导体器件仿真(如MOSFET、FinFET等)是芯片设计的核心环节,传统流程依赖专家手动调参、多物理场仿真引擎(如TCAD)耗时(小时级至天级)、经验难以沉淀,导致研发周期长、成本高。如何构建一个AI智能体系统,实现仿真任务的自动化调度、参数智能优化、结果分析与知识沉淀,成为提升半导体研发效率的关键挑战。

移动开发前沿的博客 1222

【OpenClaw从入门到精通】第41篇:2026年4月最新版——从零开始搭建你的第一个安全AI助理(保姆级实战教程)

2026年3月CNCERT联合发布《OpenClaw安全使用实践指南》后,安全部署成为OpenClaw使用的核心前提。本文针对新手及进阶用户,基于官方安全指引,提供三套实战部署方案:阿里云一键部署(新手首选)、Docker容器隔离部署(进阶推荐)、本地安全安装(测试专用),并详解阿里云百炼Coding Plan API接入流程。全文涵盖环境准备、分步实操、安全加固、问题排查等全流程,所有命令可直接复制执行,无需依赖外部代码库。通过本文,读者可零基础搭建安全隔离的OpenClaw AI助理,兼顾实用性与安全性

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2199

数据结构知识总结

目录二叉搜索树(BST)1. 概念2. 相应操作3. 代码实现 二叉搜索树(BST) 1. 概念 顾名思义是一棵二叉树,可能为空。 每个元素都有一个关键字,任意元素关键字不相同。 根节点的左子树,元素的关键字(如果有)都小于根节点的关键字 根节点的右子树,元素的关键字(如果有)都大于根节点的关键字 根节点的左、右子树也都是二叉搜索树 注:当关键字可重复时,定义3、4可以改为小于等于,大于等于。称为有重复值的二叉搜索树 2. 相应操作 插入 删除 查找 3. 代码实现 ..

撑一把纸伞,等一位佳人 1210

harbor x509: certificate signed by unknown authority【20251222】

本教程通过「合并证书链(服务器端)+ 预置根 CA(客户端)」彻底解决了自签名证书的 x509 错误,同时集成了 Trivy 漏洞扫描,实现了 Harbor 从搭建到实用的全流程。证书链合并是服务器端的关键,确保客户端获取完整信任路径;客户端需同时配置「系统信任库 + Docker 信任目录」,避免 Docker 独立信任机制导致的问题;所有 IP 需保持一致(Harbor 配置、证书绑定、客户端访问),是避免错误的基础。

老韩的Linux云计算架构师进阶之路 681

代码随想录算法训练营第十六天|Leetcode104 二叉树的最大深度 、Leetcode111 二叉树的最小深度、Leetcode222 完全二叉树的节点个数

输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]假如左结点存在,则深度加一,然后向左孩子递归,每结束一次左孩子的递归需要深度减一,才能对右孩子进行递归,最后返回最大值即可。函数分别获取左右子树的高度,而对于二叉树的最大高度则是取两者的最大值随后加上根结点的一层即可。对于最大深度的解决,使用前序和后序遍历都可以,因为返回的都是根节点到叶子节点的最大距离。

Demok123的博客 1963

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

力扣刷题:求树的最大高度,树的最小高度,与判断平衡二叉树

解题思路:这里我们考虑用递归方式解题。递归判断当前元素是否为空,如果为空,返回 0 。(讲到这里我们知道这个条件是递归的结束条件,防止递归无限执行下去)如果不为空我们返回左右子树中树高最高的值再加 1 。 代码如下 int maxDepth(struct TreeNode* root){ if(root==NULL) //若果当前节点为空,返回0 return 0; else { return fmax(maxDepth(root->left).

weixin_43211195的博客 1551

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【LeetCode】升级打怪之路 Day 18:二叉树题型 —— 树的深度、高度、路经

Day 18:二叉树题型 —— 树的深度、高度、路径

VLyb 1031

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

力扣第111题:二叉树的最小深度

给定一个二叉树,找出其最小深度。是从根节点到最近的叶子节点的路径上的节点个数。是指没有子节点的节点。

weixin_48941116的博客 1222

leetcode:最小高度树

题目来源:力扣 题目描述: 给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。 审题: 由于数组已经是有序数组,所以构建二叉搜索树并不难,基于二叉树的特性,我们将数组划分为两部分,递归构建其左右子树即可.对于题目中要求的高度最小,我们知道一棵平衡树是高度最小的二叉树.因此我们每次切分应当保证左右子树大小相差不超过1,基于此,根节点位置只要选择在中间位置...

zhangxiaojiakele的博客 482

#力扣 LeetCode111. 二叉树的最小深度 @FDDLC

题目描述: 111. 二叉树的最小深度 - 力扣(LeetCode) (leetcode-cn.com) Java代码一: class Solution { //树中节点数的范围在 [0, 105] 内 public int minDepth(TreeNode root) { if(root==null)return 0; if(root.left==null&&root.right==null)return 1; //叶结点 .

LiuXingchang的博客 408

【BFS&递归】求二叉树最小高度

1.题目:求二叉树最小高度 【LeetCode111】:判断一棵二叉树的最小高度: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. Note: A leaf is a node with no children. Example 1: In

weixin_45209148的博客 1141

AlphaMaster工程质量完全指南:单元测试、属性测试与Playwright端到端测试如何保障MT5因子挖掘项目

**AlphaMaster** 是一个面向 MT5 的**因子挖掘、回测与 Web 训练界面**一体化项目:用 AlphaGPT 生成因子公式,经 StackVM 求值后回测打分,并通过 FastAPI Web 控制台一键训练。正因为涉及"数据 → 特征 → 训练 → 回测 → 实盘信号"这条长链路,项目内置了一套**单元测试 + 属性测试 + Playwright 端到端测试**的三层质量保障体

gitblog_00635的博客 983

瑞_力扣LeetCode_104. 二叉树的最大深度

力扣LeetCode_104. 二叉树的最大深度

阿瑞——从事Java后端,喜欢研读源码、自研框架、分享经验 1229

二叉树的深度和高度问题

关卡名二叉树的经典面试问题我会了✔️内容1.最大深度问题2.判断平衡树3.最小深度4.N叉树的最大深度给定二叉树 [3,9,20,null,null,15,7],如下图然后LeetCode给我们造了一堆的题目,现在一起来研究一下104、110和111三个题,这三个题看起来挺像的,都是关于深度、高度的。

m0_53401014的博客 1234

力扣310.最小高度树(拓扑排序,无向图),力扣.加油站力扣.矩阵置零​​​力扣.二叉树中的最大路径和

力扣310.最小高度树(拓扑排序,无向图),力扣.加油站力扣.矩阵置零​​​力扣.二叉树中的最大路径和

weixin_72953218的博客 680

力扣题解-二叉树类| 二叉树求高度、深度、宽度、判断平衡性等系列问题(java实现)

1、求树的深度(最大深度) 树的深度是从根节点到最远叶子节点的最短路径上的节点数量 //(递归方式)获取以root为根节点的子树的深度:从叶子节点到达根节点的最长路径 public int getDept(TreeNode root, int dept){ if(root == null){ return dept; } int leftDept = getDept(root.left, dept+1); int rightDept = getDept(ro

KevinBrain的博客 700

LeetCode104 && LeetCode111:二叉树的高度

目录 一、题目 二、示例 三、思路 四、代码 一、题目 1、LeetCode104:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明:叶子节点是指没有子节点的节点。 2、LeetCode111:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 二、示例 1、LeetCode104: 给定二叉树 [3,9,20,null,null,15,7], ..

D77的博客 377
上一篇: 技术解析:openstack vlan模式下的隔离和数据流向(转)
flyingwindow
博客等级 码龄17年 4粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值