106 letcode - 重建二叉树

2023-11-13

class Solution:
    """
    内存条里,有两个区域,堆和栈
    其中,栈是我们函数跳转的关键,顺序是先进后出;
    通过压栈出栈,可以实现递归。 
    《1》当到达递归终止条件时候,则开始返回。
        例如: 先序遍历二叉树中,每个节点都要执行三个操作   
        根  左  右 
            当对左子树进行遍历的时候呢,可能这个左子树里还有很多子树,所有会在左子树里进行压栈,当某个
            节点没有左右子节点时候出栈。
        1.1         1
                 2       3
             4     5   6   7
        遍历该数,顺序为根  左  右  
        >>1
        对 2  4  5 ,则
        >>2,4
        4 的左子树为空则,返回上一层,执行完根 左,继续执行5,则 2 4 ->5 
        >>5 
        5 的左右子树为空,则返回上层2 ,以2为根节点的树遍历完成,再向上返回一层递归,返回到以1为
        根节点的树
        接下来则遍历以1为根节点的右子树    3  6 7
        ......
        ......
        
        """
    def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
        index = {val:i for i,val in enumerate(inorder)}
        print(index)
        # build(当前树的列表-先序遍历中根节点的位置,
        # 当前树的列表-中序遍历中左边界,
        # 当前树的列表-中序遍历中右边界)
        def build (root,left,right):
            # 【1】退出条件
            # 退出条件, 根 左 右,是二叉树基本规律,关于二叉树几乎都是这么做的
            if left>right:return 
            rootval= preorder[root]
            print(rootval)
            idroot=index[rootval]
            print(idroot)
            rootnode=TreeNode(preorder[root])
            # print(rootnode.val)
            leftsize = idroot - left
            # 【2】 左右
            rootnode.left = build(root+1,left,idroot-1)
            rootnode.right = build(root+leftsize+1,idroot+1,right)
            return rootnode
        return build(0,0,len(inorder)-1)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

106 letcode - 重建二叉树 的相关文章

  • 电商数据接口API深度解析

    随着电子商务的快速发展 电商平台之间的竞争也日益激烈 为了在市场中保持领先地位 电商平台需要不断地优化用户体验 提供个性化的服务和精准的推荐 而这一切都离不开数据 电商数据接口API作为一种高效 便捷的数据交互方式 被广泛应用于电商领域 本
  • 如何防护零日攻击

    零日攻击是什么 零日攻击 也称为零时差攻击 通常是指利用还没有被补丁的安全漏洞进行的攻击 这些漏洞在被发现后 由于各种原因 软件供应商未能及时发布补丁 使得黑客有机会利用这些漏洞进行攻击 零日攻击通常由技术高超的黑客发起 他们在对目标系统或
  • 光纤知识总结

    1光纤概念 光导纤维 英语 Optical fiber 简称 光纤 是一种由玻璃或塑料制成的纤维 利用光在这些纤维中以全内 反射 原理传输的光传导工具 微细的光纤封装在塑料护套中 使得它能够弯曲而不至于断裂 通常光纤的一端的发射设备使用发光
  • 分辨公网IP和内网IP的方法

    公网IP一般就是对外的访问地址 内网IP就是对内的访问地址 两者的使用范围是不一样的 那如果区分客户网络的IP地址是公网IP地址还是内网IP地址呢 公网IP的地址范围是很广泛的 我们可以先了解下内网IP 因为内网IP的地址段相对是局限的 一
  • 通过一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 【一份老网工珍藏多年的网络配置笔记,很重要!】

    01 交换机 路由器的几种配置模式及模式转换 1 用户模式 登录到交换机 路由器 时会自动进入用户模式 提示符为 switchname gt 在该模式下只能够查看相关信息 对 IOS的运行不产生任何影响 2 特权模式 用户模式下 键入 en
  • 6类典型场景的无线AP选型和部署方案

    你们好 我的网工朋友 前段时间刚给你们来了篇解决无线频繁断网的技术文 解决无线频繁断网 这个办法值得收藏 不少朋友私聊 说想再聊聊无线AP的选型和部署方案 这不就安排上了 无线网络覆盖项目中 无线AP的合理选型和部署非常重要 在设计施工中
  • 浅谈能耗系统在马来西亚连锁餐饮业的应用

    1 背景信息 Background 针对连锁餐饮业能耗高且能源管理不合理的问题 利用计算机网络技术 通讯技术 计量控制技术等信息化技术 实现能源资源分类分项计量和能源资源运行监管功能 清晰描述各分店总的用能现状 实时监测各供电回路的电压 电
  • 成为一个黑客,就按照这个路线来!

    前几天一个同学在聊天中提到毕业后想要从事网络安全方向的工作 虽然他本身也是学计算机的 但是又怕心有余而力不足 因为 从事网络安全方面的工作向来起点都比较高 大学里少有开设这类课程的 在学校能够学到的知识比较有限 网上的关于这方面课程的质量又
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中 为了应对反爬虫 匿名访问或绕过某些地域限制等需求 IP代理池成为了一种常用的解决方案 IP代理池是一个包含多个可用代理IP地址的集合 可以通过该代理池随机选择可用IP地址来进行网络请求 IP代理池是一组可用的代理IP地址
  • HPE Aruba Networking:五大网络现代化策略助力实现校园数字化转型

    作者 Aruba中国区技术销售总监 俞世丹 全球数字化进程日益加深 科技已成为加速教育行业发展的重要驱动力 人工智能 大数据 云计算 物联网 虚拟现实等新兴技术的快速发展 正在深刻改变着教育的形态和模式 为了更好地满足学校师生个性化教育教学
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 国外拨号VPS指南:开启你的全球网络之旅

    在当今数字化时代 互联网已经成为了我们生活的一部分 而要在全球范围内畅通无阻地访问互联网 拥有一个可靠的国外拨号VPS是非常重要的 无论您是为了工作 学习还是娱乐 国外拨号VPS都可以为您提供更广泛的网络体验 本文将为您提供国外拨号VPS的
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全
  • 是否可以通过互联网在两个移动设备 (iPhone) 之间连接套接字?

    是否可以通过互联网在两个移动设备 iPhone 之间连接套接字 我正在尝试发现每个设备的IP并直接连接 我知道可以使用 Bonjour 来完成 但这只适用于本地网络 我需要通过互联网在两个设备之间建立高速连接 Thanks 如果你有两个 I
  • Android 平台上的客户端/对等点通过 wifi-direct 进行通信

    我有三个 Android 设备 A B 和 C 它们通过 wifi direct 连接 假设 B 是组所有者 我只有两个问题 1 A想要发送消息给C 消息是否必须经过群主B才能到达C 2 如果群主B意外断线 A还能给C发消息吗 Thanks

随机推荐

  • Vercel和Railway都是云端的平台即服务提供商

    Vercel是一个专注于构建响应快速的现代网站和应用程序的服务平台 它被广泛用于构建静态网站 React应用程序等 Vercel提供全球CDN 构建和部署等强大的功能 支持多种前端框架 此外 Vercel还具有可扩展性 安全性和易用性 可以
  • Junit mock String authToken = request.getHeader(AUTH_TOKEN)

    单元测试 mock String authToken request getHeader AUTH TOKEN 代码示例 String authToken request getHeader AUTH TOKEN TEST示例 Mock M
  • 摸鱼,我是认真的

    苏生不惑第370 篇原创文章 将本公众号设为星标 第一时间看最新文章 今天分享几个有趣好玩的摸鱼网站 app 摸鱼 我是认真的 童年游戏博物馆 这个网站收录了各种童年记忆游戏 冒险岛 超级马里奥等 https www return8090
  • 港中文&商汤提出SMCA:用于DETR快速收敛的空间调制协同注意力

    为了加速DETR收敛 本文提出了一种简单而有效的方案来改进DETR框架 即空间调制协同注意 SMCA 机制 即插即用 让DETR涨点明显 性能优于可变形DETR DETR等网络 注1 文末附 Transformer 和 目标检测 交流群 注
  • VS2013+QT5.8.0配置

    一 安装 因为最近在看图形学的三维重构 需要学习meshlab的一些重建方法 官网找到了编译源码 需要编译 不得不学一下QT 先说说VS2013 QT的配置吧 系统环境 windows10 64bit VS 2013 QT5 8 0 QT5
  • Vue使用axios发送post请求,后端无法接收怎么处理?(Djnago后台)

    今天终于解决了一个困扰很久的问题 在使用Vue进行前端项目的搭建时 通常采用axios作为数据传输的工具 我们会发现 使用get请求一切都正常 但是使用post请求 会发生一些奇怪的事情 这次我使用的是python的web框架django
  • C#开发物联网实践(新手)之门槛

    ABP Cli安装问题 问题描述 想在VS2019上装CLI 输入 dotnet tool install g Volo Abp Cli 结果要求我下载VS2022 刚出的2022VS 我刚看完视频下载的VS2019 解决方法 下载国内版
  • vue教程

    原文 1 vue安装 1 1 直接用 script标签引入 对于制作原型或学习 你可以这样使用最新版本 对于生产环境 我们推荐链接到一个明确的版本号和构建文件 以避免新版本造成的不可预期的破坏 1 2 NPM创建 安装vue npm ins
  • 第14.6节 使用Python urllib.request模拟浏览器访问网页的实现代码

    Python要访问一个网页并读取网页内容非常简单 在利用 第14 5节 利用浏览器获取的http信息构造Python网页访问的http请求头 的方法构建了请求http报文的请求头情况下 使用urllib包的request模块使得这项工作变得
  • 人工智能+物联网+机器人 = AIOTBOT

    借着2019年人工智能 物联网 AIOT 的大潮 我辈机器人是否也能顺势而举 人工智能 物联网 机器人的融合缩写为 AIOTBOT
  • soap development issue

    description No Deserializer found to deserialize a xxx using encoding style yyy reason the requesting envelope xml doesn
  • Flutter 状态栏图标颜色方案

    方案一 使用 AppBar 配置 文章目录 方案一 使用 AppBar 配置 方案二 通过 AnnotatedRegion 控制 注意点 在 AppBar 中配置属性 brightness 其取值 Brightness dark AppBa
  • python如何输出一个数组_python中实现将多个print输出合成一个数组

    python中实现将多个print输出合成一个数组 比如有下面一段代码 for i in range 10 print s f list i name 该代码段的执行 会生成如下的10行 name 属性的字符串 f1 f2 f3 f4 f5
  • 根据请求动态设置 @Value 注入的属性值

    先说一下可以使用的场景 项目中有一些功能类使用了 Value修饰 这种属性取值通常要么是读取 yml 的配置文件 要么是读取配置中心 在我们在本地调试的时候Controller时 如果 如果Service层用到了 Value修饰 的属性时
  • JMeter:使用Docker进行分布式负载测试

    概述 单个的JMeter实例可能无法生成足够的负载来对应用程序进行压力测试 如本网站所示 一个JMeter实例将能够控制多个远程JMeter实例 并在你的应用程序上产生更大的负载 JMeter使用Java RMI Remote Method
  • Angular6 学习笔记——指令

    angular6 x系列的学习笔记记录 仍在不断完善中 学习地址 https www angular cn guide template syntax http www ngfans net topic 12 post 2 系列目录 1 组
  • 骰子【概率dp】

    题目链接 P1409 骰子 因为会有人被弹出队列 所以我设置的期望dp为 表示当现在队列中有i个人的时候 第j个人获胜的概率 于是有当只剩一个人的时候 那个人必胜 再往下 先看它在队首的情况 也就是直接获胜的概率加上它被弹到队尾时候的概率
  • IntelliJ IDEA 2023.2 新版本,拥抱 AI

    IntelliJ IDEA 近期连续发布多个EAP版本 官方在对用户体验不断优化的同时 也新增了一些不错的功能 尤其是人工智能助手补充 AI Assistant 相信在后续IDEA使用中 会对开发者工作效率带来不错的提升 以下是官方对AI
  • LeetCode:动态规划中的0-1背包问题【快来直接套模板啦】

    PS 0 1背包问题无疑是动态规划题目里面的非常经典的一类题目了 下面给出这类题目的一种解题模板 本文是参考代码随想录做的一些笔记 完整版本请戳链接 标准0 1背包问题 二维数组求解 标准的背包问题 有n件物品和一个最多能背重量为w的背包
  • 106 letcode - 重建二叉树

    class Solution 内存条里 有两个区域 堆和栈 其中 栈是我们函数跳转的关键 顺序是先进后出 通过压栈出栈 可以实现递归 1 当到达递归终止条件时候 则开始返回 例如 先序遍历二叉树中 每个节点都要执行三个操作 根 左 右 当对