二叉树-(将有序数组转换成二叉搜索树)

2023-11-05

# -*- coding:utf-8 -*-

""" 
Author: leadingme
Mail:leadingme@qq.com
MyWebsite:leadingme.top
"""

# 将有序数组转换成二叉搜索树
"""
    算法要求:
        将一个按照升序排序的有序数组转换为一颗高度平衡的二叉搜索树
    示例:
        输入: [-10, -3, 0, 5, 9]
        输出: 一个可能的答案是[0, -3, 9, -10, null, 5], 可以表示为下面这个高度平衡二叉搜索树:
                0
               / \
             -3   9
             /    /
           -10   5
    解题思路: 在平衡二叉树中,root节点的值必定是一个平衡二叉树的值,如果是在一个有序序列,必然是
最中间的值,用递归的思想,root的right节点和left节点分别是右边一半列表和左边一半列表的中间值,如此递归下去
"""

class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution(object):
    def sortedArrayToAST(self, nums):
        if not nums: # 为空列表
            return None
        mid = len(nums)//2 # 求出有序数组的中间值
        root = TreeNode(nums[mid])
        root.left = self.sortedArrayToAST(nums[:mid])
        root.right = self.sortedArrayToAST(nums[mid+1:])
        return root
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二叉树-(将有序数组转换成二叉搜索树) 的相关文章

随机推荐

  • 云计算与大数据第11章 大数据隐私保护习题带答案

    第11章 大数据隐私保护习题 11 1 选择题 1 以下 D 通常不是导致数据隐私泄露问题的来源 A 数据被肆意收集 B 数据集成融合 C 大数据分析 D DDOS攻击 2 以下 C 不是数据隐私保护的主要目标 A 机密性 B 完整性 C
  • 第38步 深度学习图像识别:VGG19建模(Tensorflow)

    基于WIN10的64位系统演示 一 写在前面 1 预训练模型和迁移学习 预训练模型就像是一个精心制作的省力工具 它是在大量的数据上进行训练 然后将学习到的模型参数保存下来 然后 我们可以直接使用这些参数 而不需要从头开始训练模型 这样可以节
  • PyTorch基础练习-task7(用PyTorch完成手写数字识别)

    PyTorch基础练习 task7 task7 import torch import numpy as np from torch autograd import Variable import torch nn as nn import
  • Vue全局注册组件的几种方式

    Vue全局注册组件的几种方式 1 extend vue js 代码 var com Vue extend template h1 这是第一种方式 h1 Vue component MyComponent com 此时的组件名为 MyComp
  • MySQL数据备份和恢复

    MySQL数据备份和恢复 数据备份 mysqldump是MySQL数据库备份工具 可以备份MySQL数据库中的数据和结构 生成 sql文件 方便数据的迁移和恢复 使用mysqldump工具前一定要配置环境变量 打开开始菜单 搜索 环境变量
  • 谷歌gn编译文件的使用简介

    Gn是什么 它是Google用来维护chromium项目的编译工具 现在相关的开源项目都基于gn来进行编译管理 目前一些大型系统的都会使用gn 例如谷歌 鸿蒙 Gn就是一个构建脚本生成器 是之前gyp的升级版本 并且gn是基于c 编写 效率
  • Python论文绘图利器seaborn.lineplot

    Python论文绘图利器seaborn lineplot 提示 前言 Python论文绘图利器seaborn lineplot 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 Python论文绘图利器seabor
  • Java中的equals()方法

    equals 在哪里 首先我们知道Java中Object类是所有类的父类 它里面定义了equals 方法 public boolean equals Object obj return this obj 可以看到是使用 来进行比较的 那么
  • 20 个常用的 CSS 技巧

    Sandy 推荐 高级工程师 游戏开发 下面这几个CSS技巧你可能不知道 1 彩色照片变黑白 2 所有元素垂直居中 3 禁用鼠标 4 模糊文字 小编学完能量满满的 觉得对CSS又充满了爱 你也来看看 原文链接 http caibaojian
  • sql 关联了2张表的 update 语句(转)

    转自 SQL Update 使用一个表的数据更新另一张表 update 关联两个表 基本上 select 能支持的关联和子查询操作 都能在 update 语句中使用 在 where 条件中使用子查询 update a set a age 1
  • Spark WARN cluster.ClusterScheduler: Initial job has not accepted any resources;check your cluster

    当我在Spark集群模式执行以下命令时 root debian master home hadoop spark 0 8 0 incubating bin hadoop1 run example org apache spark examp
  • DBA成长随笔---Oracle 11g,性能优化之等待事件

    目录 等待的定位方式 等待事件分类 观察等待事件的视图 常见等待事件 等待事件主要可以分为两类 即空闲 IDLE 等待事件和非空闲 NON IDLE 等待事件 空闲等待事件 是指Oracle正等待某种工作 比如用sqlplus登录之后 但没
  • 远程桌面连接出现了内部错误怎么解决?

    远程桌面连接是一种非常方便的工具 可以让用户从远程访问其他计算机的桌面界面 但是 有时候在连接远程桌面时会出现内部错误 导致无法连接或者连接后无法正常使用 在本文中 我们将会讨论远程桌面连接出现内部错误的原因和解决方法 1 确认网络连接 在
  • 2023牛客暑期多校第三场部分题解

    索引 A B D E G H I J A 直接输出两个数的差即可 再判一下无解的情况 B 其实思路还挺顺的 首先拿的牌肯定是一段增一段减一段增一段减 的序列 并且 gt n gt n gt n 的开头和 n
  • React中使用antd DatePicker限制日期选择

    场景 React中使用antd DatePicker限制日期选择 有下面一些场景 1 今天之前的日期不可选择 不包括今天 disabledDate current gt let current current format YYYY MM
  • 多标签学习之白话版

    简单的机器学习 就是把人类的学习方式教给机器 斯 cdot 沃索迪 1 任务的提出 单标签学习 假设你不知道河豚长什么样子 给你 1000 张照片 并标注哪些有河豚 再给你 100 张新的照片 你能判断哪些照片里面有河豚吗 本例中 从 10
  • charles介绍及代理设置

    一 介绍 你别说 这个真挺好看 有的叫花瓶 有的叫青花瓷 二 说明 安装charles后 如果不是正版 需要破解 破解码去百度查一个即可 否则试用期过后 使用半小时后就自动关闭了 需要重新打开呢 破解码输入路径 help register
  • ElasticSearch系列18:Mapping 设计指南

    点击上方 方才编程 即可关注我 本文导读 ElasticSearch 的 mapping 该如何设计 才能保证检索的高效 想要回答这个问题 就需要全面系统地掌握 mapping 各种参数的含义以及其适用的场景 ps 本文基于ElasticS
  • SQL 解析在 CloudQuery 中的应用

    hi 好久不见 今天将为大家带来一期干货满满的技术分享 作为一款数据库管控平台 大家通常认为 CloudQuery 的核心能力是对平台的管控 包括统一入口管理 权限体系 审计分析等 但实际上 CloudQuery 的核心技术点之一在于其独特
  • 二叉树-(将有序数组转换成二叉搜索树)

    coding utf 8 Author leadingme Mail leadingme qq com MyWebsite leadingme top 将有序数组转换成二叉搜索树 算法要求 将一个按照升序排序的有序数组转换为一颗高度平衡的二