网站负责人核验照片o2o好网站

web/2025/9/25 15:50:33/文章来源:
网站负责人核验照片,o2o好网站,班级文化墙创意设计图片,盐城专业做网站的公司哪家好修剪二叉搜索树 给定一个二叉搜索树#xff0c;同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树#xff0c;使得所有节点的值在[L, R]中 (RL) 。你可能需要改变树的根节点#xff0c;所以结果应当返回修剪好的二叉搜索树的新的根节点。 ​ 最直接的想法#xff0…修剪二叉搜索树 给定一个二叉搜索树同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树使得所有节点的值在[L, R]中 (RL) 。你可能需要改变树的根节点所以结果应当返回修剪好的二叉搜索树的新的根节点。 ​ 最直接的想法遍历树然后找到root-val在[L,R]以外的节点删除通过递归处理返回根节点 ​ 如果此时简单的给出这种代码 root-left trimBST(root-left, low, high);root-right trimBST(root-right, low, high);​ 就会忽视掉当前节点不在范围内但是节点左(右)子树可能在范围内的情况 ​ 如下图所示 ​ 也就是在删除节点时还要对其子树进行判断至于实现方式可以参考上一题的子树嫁接方法无须重构二叉树结构 ​ 下面写递归三部曲 ​ 首先确定递归函数参数和返回值遍历整棵树做修改其实不需要返回值也可以完成修剪其实就是从二叉树中移除节点的操作但是有返回值更方便可以通过递归函数的返回值来移除节点不需要额外操作 ​ 其次确定终止条件修剪的操作并不是在终止条件进行的所以就是遇到空节点返回就可以了 ​ 最后确定单层递归的逻辑嫁接子树此处不再赘述 ​ 递归代码如下 TreeNode* traversal(TreeNode* root, int L, int R){if(root NULL) return NULL;if(root-val L){//节点值小于左边边界值TreeNode* tempNode traversal(root-right, L, R);//此节点右子树中寻找所有大于L的值的节点继续嵌套递归修剪右子树return tempNode;}if(root-val R) return traversal(root-left, L, R);//同理并非直接return子树而是修剪过后再returnroot-left traversal(root-left, L, R);//对符合区间条件的根节点左右子树进行操作root-right traversal(root-right, L, R);return root;}将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组转换为一棵高度平衡二叉搜索树。 本题中一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: ​ 按题目要求切割数组得到平衡二叉搜索树则从数组中间作为根节点开始切割 ​ 同时注意循环不变量因为这里是需要不断对数组进行切割直到子数组的长度为一 ​ 遍历代码如下 TreeNode* traversal(vectorint nums, int L, int R){//确定函数参数和返回值//这里选择左闭右开的切割区间则子区间停止切割的终止条件即是数组长度等于零的时候if(L R) return NULL;//单层递归逻辑int mid (R-L)/2L;//防止int溢出TreeNode* root new TreeNode(nums[mid]);//确定根节点root-left traversal(nums, L, mid);//左闭右开root-right traversal(nums, mid1, R);return root;}把二叉搜索树转化为累加树 给出二叉 搜索 树的根节点该树的节点值各不相同请你将其转换为累加树Greater Sum Tree使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下二叉搜索树满足下列约束条件 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左右子树也必须是二叉搜索树。 示例 1 输入[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8] 示例 2 输入root [0,null,1]输出[1,null,1] 示例 3 输入root [1,0,2]输出[3,3,2] 示例 4 输入root [3,2,4,1]输出[7,9,4,10] 提示 树中的节点数介于 0 和 104 之间。每个节点的值介于 -104 和 104 之间。树中的所有值互不相同 。给定的树为二叉搜索树。 ​ 如果给定的是一个有序数组则[1, 2, 3, 4]的结果就是[10, 9, 7, 4]那二叉树呢 ​ 从二叉搜索树的最大值开始往前递加无疑就是处理顺序的改变即右中左的顺序来遍历整个二叉搜索树即反中序遍历 ​ 则递归代码如下 int sum 0;//记录前一个节点的数值void traversal(TreeNode* cur){//确定函数参数和返回值遍历整棵树且无须对返回值进行处理if(!cur) return;//确定终止条件为空返回//if(cur-right) sum cur-right-val; 单层逻辑traversal(cur-right);cur-val sum;sum cur-val;//更新sum//if(cur-left) sum cur-left-valtraversal(cur-left);}​ 整体代码如下 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { private:int sum 0;//记录前一个节点的数值void traversal(TreeNode* cur){//确定函数参数和返回值遍历整棵树且无须对返回值进行处理if(!cur) return;//确定终止条件为空返回//if(cur-right) sum cur-right-val; 单层逻辑traversal(cur-right);cur-val sum;sum cur-val;//更新sum//if(cur-left) sum cur-left-valtraversal(cur-left);} public:TreeNode* convertBST(TreeNode* root) {sum 0;traversal(root);return root;} };总结 ​ 递归和迭代的思想都要熟悉 递归 ​ 首先是熟知递归函数的参数和返回值 ​ 如何利用才能使算法的性能最优化例如对返回节点类型、传入int替代vector ​ (见Day 18) ​ 如果需要搜索整棵二叉树且不用处理递归返回值递归函数就不要返回值这种情况就是本文下半部分介绍的113.路径总和ii ​ 如果需要搜索整棵二叉树且需要处理递归返回值递归函数就需要返回值 这种情况我们在236. 二叉树的最近公共祖先 (opens new window)中介绍 ​ 如果要搜索其中一条符合条件的路径那么递归一定需要返回值因为遇到符合条件的路径了就要及时返回 ​ 其次是关于递归函数的终止条件 ​ 有时候终止条件并不是简单的对处理节点判空即可需要根据具体情境进行判断 ​ 最后是递归函数的单层遍历逻辑 ​ 二叉树题目的逻辑往往不算很难大多时候可以理解为对一个遍历顺序特殊的数组进行处理所以遍历顺序尤为重要 ​ 在构建二叉树的节点的时候一定是选择从根节点开始中左右即前序遍历 ​ 在面对二叉搜索树时一定是选择中序遍历左中右这样才能充分利用二叉搜索树的有序性质 ​ 求普通二叉树的属性的时候一般采取后序遍历左右中因为需要返回中节点进行处理 迭代 ​ 迭代最主要的思想就是用栈来模拟树的逻辑通过不断的push pop得到理想中的出栈顺序 ​ 一般在涉及到递归不是很好处理返回值的时候使用迭代层序遍历就是一个典型的例子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外贸建站深圳网站关键词怎么优化排名

今日主要内容 while循环:判断条件是否成立。 如果成立执行循环体。然后再次判断条件,。。。。。直到条件不成立的时候跳出循环 语法: while 条件:   循环体 else:   当条件不成立的时候执行这里 和break没关系 break 终止当前循环 continue 停止当前…

相城网站建设商务定制网站

目录 一、资源池 pool 管理 1.创建一个 Pool 资源池 2.查看集群 Pool 信息 3.查看资源池副本的数量 4.查看 PG 和 PGP 数量 5.修改 pg_num 和 pgp_num 的数量为 128 6.修改 Pool 副本数量为 2 7.修改默认副本数为 2 8.删除 Pool 资源池 8.1修改配置文件 8.2推送 ceph…

网站建设实训教程珠海制作企业网站

一、Linux命令基础 1、ls、ll命令——展示数据 ①ls命令——平铺展示数据 其中ls命令以平铺的方式展现数据 ②ll命令——列表展示数据 ll命令以列表的方式展现数据 -a选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹…

c 手机网站开发工具discuz 门户网站模板

client-go是由k8s发布且维护的专门用于开发者和kubernetes交互的客户端库。它支持对k8s资源的CRUD操作(create、read、update、delete),事件监听和处理,访问kubernetes集群的上下文和配置。 client go是独立于kubernetes集群之外…

摄影师个人网站模板网站上线如何做公司名字

2024第六届环境科学与可再生能源国际会议 能源 (ESRE 2024) 即将举行 2024 年 6 月 28 日至 30 日在德国法兰克福举行。ESRE 2024 年 旨在为研究人员、从业人员和专业人士提供一个论坛 从工业界、学术界和政府到研究和 发展,环境科学领域的专…

优化网站内容3 建设营销型网站流程图

准备工作 1. 注册 npm 账号 还没有 npm 账号?去官网注册: https://www.npmjs.com 需要记住用户名、密码、邮箱,后面需要用到。 2. 查看本地 npm 镜像,如果不是默认的,需要改回来 npm config get registry重置镜像路…

58同城枣庄网站建设企业网站建设方案书模板

Docker概述 ​ —— Notes from WAX through KuangShen 准确来说,这是一篇学习笔记!!! Docker为什么出现 一款产品:开发—上线 两套环境!应用环境如何铜鼓? 开发 – 运维。避免“在我的电脑…

装修行业网站建设wordpress free cdn

目录 一、基础插件二、AI三、Rust插件 一、基础插件 Chinese (Simplified) (简体中文) 此中文(简体)语言包为 VS Code 提供本地化界面。 Native Debug 本地VSCode调试器。 CodeLLDB 一个由LLDB提供支持的本地调试器。调试c, Rust等编译语言…

广告传媒公司经营范围有哪些seo怎么做整站排名

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

受欢迎的模板网站建设南宁seo站内关键词优化

银行卡快捷支付的应用范围非常广泛,几乎涵盖了现代生活中的各种支付场景。以下是银行卡快捷支付的主要应用范围: 1. 线上购物 在电子商务平台、在线商城或移动应用上,用户可以使用银行卡快捷支付进行在线购物支付。通过选择预先绑定的银行卡…

网站开发 兼职布吉网站建设技术托管

来源:机器之心摘要:外媒最近频传的「华为同意卖5G基带给苹果」,让科技界的人们浮想联翩。刚刚,华为终于有了较为官方的回应:华为总裁任正非在接受CNBC的时候表示,华为对于出售5G芯片给苹果用于iPhone「持开…

建站平台哪家好人才招聘网最新招聘2022

&#xff08;1&#xff09;快速入门 SpringBoot形式创建 Maven形式创建&#xff1a; 加入依赖&#xff1a; 创建启动类&#xff1a; 设置头文件 就想Jsp的<%Page %>一样 &#xff0c;Thymeleaf的也要引入标签规范。不加这个虽然不影响程序运行&#xff0c;但是你的idea…

大沥九江网站制作推广一款app的营销方案

之前已经学到了很多监督学习算法&#xff0c; 今天的监督学习算法是支持向量机&#xff0c;与逻辑回归和神经网络算法相比&#xff0c;它在学习复杂的非线性方程时提供了一种更为清晰&#xff0c;更强大的方式。 Support Vector Machines SVM hypothesis Example Dataset 1…

站长工具seo综合查询烟雨楼怎样上传网站程序

来源&#xff1a;科技日报一个国际科研团队最近创建了迄今最详细的大尺度宇宙模型TNG50。这一虚拟宇宙“芳龄”约138亿岁、宽约2.3亿光年&#xff0c;包含数万个正处于演化中的星系&#xff0c;星系的细节程度与单星系模型中的相当。该模型跟踪了200多亿个代表暗物质、气体、恒…

装修平台网站排名腾讯邮箱企业邮箱注册申请

我们有时进行网页设计时为了想让用户感兴趣的内容优先显示在前&#xff0c;又不想改动代码的先后顺序&#xff0c;要怎么操作呢&#xff1f;&#xff08;或者换种说法&#xff1a;源代码中要先看到A再看到B&#xff0c;而视觉上是先B再A&#xff09;举个简单的例子&#xff0c;…

建站代理赚钱吗高性能网站建设进阶...

​五月天的《干杯》这首歌短短几分钟&#xff0c;将一个人的一整个人生快速地表现出来。从上课爱看漫画的小男孩到精力充沛的高中生&#xff0c;再到走上工作岗位&#xff0c;而后有了下一代&#xff0c;再为下一代操心&#xff0c;最后进入天堂&#xff0c;和亲人们告别。人生…

个人网站首页导航栏ps制作教程工程建设信息网站接口

1、小程序开发工具基础 &#xff08;1&#xff09;菜单栏&#xff1a;可以对开发工具进行一些简单的设置&#xff0c;还可以在帮助一行获取学习相关api文档 &#xff08;2&#xff09;模拟器显示栏&#xff1a;每当我们在进行便写好代码之后&#xff0c;通过编译可以在模拟显示…

备案网站ipwordpress登录用户错乱

Java中面向对象的继承性&#xff1a;初学者指南 在Java编程语言中&#xff0c;面向对象编程&#xff08;OOP&#xff09;的四大特性之一是继承性。继承允许我们创建新的类&#xff08;称为子类或派生类&#xff09;&#xff0c;这些类继承另一个类&#xff08;称为父类或基类&…

广州高端做网站电子版简历word格式

分享主题&#xff1a;Xamarin Azure 微软云加端移动应用技术架构分享者&#xff1a;周岳 微软MVP分享主题&#xff1a;从设计图到最终界面- Xamarin跨平台界面最佳实践分享者: 程文锋 视高盛景分享主题&#xff1a;基于VSTS的App DevOps分享者&#xff1a; 安庭庭 张浩 视高…

舟山市住房城乡建设局网站营销型网站建设哪里济南兴田德润优惠吗

文章目录 Pre发展历史Http VS HttpsHTTPS 解决了 HTTP 的哪些问题HTTPS是如何解决上述三个风险的混合加密摘要算法 数字签名数字证书 Pre PKI - 数字签名与数字证书 PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证 发展历史 HTTP&#xff08;超文本传输协…