代码随想录算法训练营第20天|二叉树

654. 最大二叉树
思路和由中后序列构建树的思路是一样的,只不过这里不是通过后序的最后一个数来进行分割,而是通过找最大值进行分割左右子树
迭代找出左子树和右子树的的边界,返回当前节点就行了
具体代码后续补

617. 合并二叉树
这里的return node不能到最后才去return,一定在某一个条件里面马上return了

/*** Definition for a binary tree node.* function TreeNode(val, left, right) {*     this.val = (val===undefined ? 0 : val)*     this.left = (left===undefined ? null : left)*     this.right = (right===undefined ? null : right)* }*/
/*** @param {TreeNode} root1* @param {TreeNode} root2* @return {TreeNode}*/var mergeTrees = function(root1, root2) {// console.log(root1,root2);// console.log(root1 === null)// return;//两个都为空if(root1 == null && root2 == null) return null;//root2为空let node = new TreeNode();if(root1 != null && root2 == null){let node = new TreeNode(root1.val);node.left = mergeTrees(root1.left, null);node.right = mergeTrees(root1.right, null);return node;}else if(root1 == null && root2 != null){let node = new TreeNode(root2.val);node.left = mergeTrees(null, root2.left);node.right = mergeTrees(null, root2.right);return node;}else{let node = new TreeNode(root1.val + root2.val);node.left = mergeTrees(root1.left, root2.left);node.right = mergeTrees(root1.right, root2.right);return node;}
};

700. 二叉搜索树中的搜索

/*** Definition for a binary tree node.* function TreeNode(val, left, right) {*     this.val = (val===undefined ? 0 : val)*     this.left = (left===undefined ? null : left)*     this.right = (right===undefined ? null : right)* }*/
/*** @param {TreeNode} root* @param {number} val* @return {TreeNode}*/
var searchBST = function(root, val) {if(!root) return null;if(val > root.val){return searchBST(root.right, val);}else if(val < root.val){return searchBST(root.left, val);}else return root;};

98. 验证二叉搜索树
这道题有陷阱的,子树是BST,不代表这个树一定是BST
要清楚的特性是对于BST来说,起中序遍历的数组一定是一个升序数组

/*** Definition for a binary tree node.* function TreeNode(val, left, right) {*     this.val = (val===undefined ? 0 : val)*     this.left = (left===undefined ? null : left)*     this.right = (right===undefined ? null : right)* }*/
/*** @param {TreeNode} root* @return {boolean}*/
var isValidBST = function(root) {let inorder = [];inOrder(root, inorder);for(let i = 1; i < inorder.length; i++){if(inorder[i - 1] >= inorder[i]) return false;}return true;};function inOrder(root, inorder){if(!root) return;inOrder(root.left, inorder);inorder.push(root.val);inOrder(root.right, inorder);
}

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

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

相关文章

WPF音乐播放器 零基础4个小时左右

前言&#xff1a;winfrom转wpf用久的熟手说得最多的是,转回去做winfrom难。。当时不明白。。做一个就知道了。 WPF音乐播放器 入口主程序 FontFamily"Microsoft YaHei" FontSize"12" FontWeight"ExtraLight" 居中显示WindowStartupLocation&quo…

数据结构:并查集

数据结构&#xff1a;并查集 题目描述参考代码 题目描述 输入样例 5 5 C 1 2 Q1 1 2 Q2 1 C 2 5 Q2 5输出样例 Yes 2 3参考代码 #include <iostream>using namespace std;const int N 100010;int n, m; int p[N], sz[N];int find(int x) // 返回x的祖宗节点 路径…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十六)- 微服务(6)

目录 10. Docker 10.1 Docker基本操作 10.1.1 镜像相关命令 10.1.2 容器相关命令 10.2 数据卷命令 10.2.1 常用命令 : 10.2.2 挂载数据卷 10. Docker 10.1 Docker基本操作 10.1.1 镜像相关命令 docker --help 查看docker帮助文档 docker images --help 查看docker ima…

Java中条件运算符的嵌套使用技巧总结

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

c语言项目-贪吃蛇项目2-游戏的设计与分析

文章目录 前言游戏的设计与分析地图&#xff1a;这里简述一下c语言的国际化特性相关的知识<locale.h> 本地化头文件类项setlocale函数 上面我们讲到需要打印★&#xff0c;●&#xff0c;□三个宽字符找到这三个字符打印的方式有两种&#xff1a; 控制台屏幕的长宽特性&a…

C++笔试强训day38

目录 1.天使果冻 2.dd爱旋转 3.小红取数 1.天使果冻 链接https://ac.nowcoder.com/acm/problem/219641 一开始都可以想到将数组的前x个数拿出来排降序输出第二个数即可。 但是因为询问量和数据量都较大&#xff0c;每次询问一次都要排序一次数组&#xff0c;会超时&#xf…

ai聊天机器人app的分享!有4个热门的软件!

在科技日新月异的今天&#xff0c;AI聊天机器人已经不再是遥不可及的科幻概念&#xff0c;而是实实在在走进了我们的日常生活。无论是工作中的信息查询&#xff0c;还是生活中的闲聊解闷&#xff0c;这些智能助手都能为我们提供便捷、高效的服务。那么&#xff0c;市面上都有哪…

含有嘧啶的光活性阳离子共轭微孔聚合物通过“吸附杀死”抗菌策略促进感染伤口愈合

引用信息&#xff1a; 文 章&#xff1a;Photoactive cationic conjugated microporous polymers containing pyrimidine with an adsorption-killantibacterial strategy for infected wound healing. 期 刊&#xff1a;Chemical Engineering Journal&#xff08;影响因子…

【MySQL】sql语句之库操作

序言 在上篇文章学习当中&#xff0c;我们认识了数据库的相关概念&#xff0c;以及MySQL的框架和基本使用等内容&#xff0c;总之对数据库有了一个大致的认识&#xff0c;那么本篇文章将开始关于sql语句的学习&#xff0c;本文主要是关于库的属性和操作的内容&#xff0c;简单可…

stm32下载驱动ST-LINK/V2驱动下载

http://www.openedv.com/docs/tool/dap/ST-LINKV2.html https://www.stmcu.com.cn/Designresource/detail/fi rmware_software/709492

电商风控指南:“仅退款”成部分商家梦魇,如何有效防控非法牟利

目录 “仅退款”成不法分子牟利新途径 各电商平台的“仅退款”条款模糊 商家如何防范“仅退款”的欺诈 “仅退款”服务已成为各大电商平台的“标配”。然而&#xff0c;以“薅羊毛”的方式谋取不当利益&#xff0c;给商家造成了经济和声誉上的双重损失&#xff0c;引发了广泛关…

回溯之分割回文串

题目&#xff1a; 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1&#xff1a; 输入&#xff1a;s "aab" 输出&#xff1a;[["a","a","b"],[&quo…

清除Ubuntu系统中的无法启动的Ubuntu 24实例

如果你的Ubuntu系统中有一个无法启动的Ubuntu 24实例&#xff0c;并且你想要清除这个实例&#xff0c;你可以按照以下步骤操作&#xff1a; &#xff08;1&#xff09;备份重要数据: 在进行任何此类操作之前&#xff0c;请确保备份了所有重要数据&#xff0c;以防万一出现问题。…

CentOS-内网搭建FTP-Server

一、镜像选择 1、 Centos-everting或者DVD 2、7.5 7.6 7.9 均可 二、安装步骤 1、其余步骤和普通安装一致。 2、最重要的一步为“软件选择” 1、勾选FTP、文件以及存储服务器、性能以及开发工具。 三、FTPServer搭建 1、关闭防火墙 systemctl stop firewalld or 通过21和20…

happens-before 关系

2、happens-before 关系 在 Java 中&#xff0c;volatile 关键字用于变量的修饰&#xff0c;它确保对该变量的所有读写操作都是直接从主内存中进行的&#xff0c;而不是从线程的本地缓存 中读取。volatile 关键字可以保证某些类型的内存可见性&#xff0c;并在一定程度上防止…

createAsyncThunk完整用法介绍

createAsyncThunk 是 Redux Toolkit 库中的一个功能&#xff0c;它用于创建处理异步逻辑的 thunk action creator。Redux Toolkit 是一个官方推荐的库&#xff0c;用于简化 Redux 开发过程&#xff0c;特别是处理常见的 Redux 模式&#xff0c;如异步数据流。createAsyncThunk …

ubuntu安装或删除cmake

如果你是第一次安装cmake&#xff0c;直接敲如下命令就可以了&#xff1a; sudo apt update sudo apt-get install cmake 如果发现之前安装的cmake不能被损坏或者不能用了&#xff0c;就要把之前的cmake重新安装&#xff0c;那么我们就要先卸载之前的cmake&#xff0c;敲如下…

机器视觉——找到物块中心点

首先先介绍一下我用的是HALCON中的HDevelop软件。 大家下载好软件后可以测试一下&#xff1a; 在程序编辑器窗口中输入下面指令&#xff1a; read_image(Image,monkey) 那么如果出现这样的图片&#xff0c;说明是没有问题的 那么本次编程采用的是下面这张图片 我们要达到的…

CompletableFuture的底层他是如何实现的

底层原理 CompletableFuture是Java8中引入的新特性,像我们平常遇到的, 某一个计算过程依赖于另外一个计算过程的结构,这些结构就类似于一种链表的形式来体现,每一个阶段都代表着一种异步的操作, 然后这些阶段又是相互依赖的, 基于一种链式的操作. 官方点来解释就是 每个 Comple…

【论文复现|智能算法改进】基于改进麻雀算法的无线传感器网络覆盖优化研究

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】麻雀搜索算法&#xff08;SSA&#xff09;原理及实现 WSN数学模型 2.改进点 基于Sobol序列和ICMIC混沌映射的种群初始化 ICMIC是一种无线映射折叠次数的映射模型: { z n 1 sin ⁡ ( α π…