代码随想录算法训练营day14|二叉树的遍历

  •  理论基础
  •  递归遍历  
  •  迭代遍历
  •  统一迭代

 理论基础 

需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义 

文章讲解:代码随想录

 递归遍历 (必须掌握)

二叉树的三种递归遍历掌握其规律后,其实很简单 

题目链接/文章讲解/视频讲解:代码随想录

 迭代遍历 (基础不好的录友,迭代法可以放过)

题目链接/文章讲解/视频讲解:代码随想录

 统一迭代   (基础不好的录友,迭代法可以放过)

这是统一迭代法的写法, 如果学有余力,可以掌握一下

题目链接/文章讲解:代码随想录

二叉树节点的构造

struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) :val(x),left(NULL),right(NULL){}
};

递归遍历

void traversal(TreeNode* cur, vector<int>& vec) {if (cur == NULL) return;vec.push_back(cur->val);traversal(cur->left, vec);traversal(cur->right, vec);
}

接受二叉树遍历结果val

vector<int> preorderTraversal(TreeNode* root) {vector<int> result;traversal(root, result);return result;
}

前/中/后序遍历同理


迭代遍历

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

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

相关文章

ubuntu附加驱动 全部灰色,无法点击

使用命令下载&#xff1a;参考&#xff1a;解决nvidia-smi报错&#xff1a;NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.-CSDN博客

npm install运行报错npm ERR! gyp ERR! not ok问题解决

执行npm install的时候报错&#xff1a; npm ERR! path D:..\node_modules\\**node-sass** npm ERR! command failed ...npm ERR! gyp ERR! node -v v20.11.0 npm ERR! gyp ERR! node-gyp -v v3.8.0 npm ERR! gyp ERR! not ok根据报错信息&#xff0c;看出时node-sass运行出现…

写点东西《检查和更新NPM包》

写点东西《检查和更新NPM包》 检查和更新 NPM 包 TL;DR&#xff1b; 用于检查和更新软件包的 NPM 命令# [](#npm-outdated)npm outdatednpm updatenpm update --save-dev --savenpm update -g npm-check-updates 检查和更新软件包的命令npm install -g npm-check-updatesnpx np…

Idea Community社区版如何添加Run Dashboard

最近在学习spring cloud&#xff0c;跟着视频添加run dashboard&#xff0c;发现里面介绍的方法无法适用于idea community(社区版)。 然后自己研究了一下&#xff0c;成功添加&#xff0c;下面分享自己的方法。 如图&#xff0c;我的项目里添加了两个module&#xff0c;我想通…

kubeadm部署k8s1.27.2版本高可用集群(外部etcd集群带TLS认证)

文章目录 环境软件版本服务器系统初始化etcd 证书生成etcd集群部署负载均衡器部署部署k8s集群部署网络组件FAQ 环境 控制平面节点主机的配置最少是2C2G,否则kubeadm init的时候会报错 主机名IP组件系统os128192.168.177.128etcd、kube-apiserver、kube-controller-manager、k…

Cesium for Unity包无法加载

太上老君急急如律⚡令⚡ &#x1f959;关闭UnityHub&#x1f9c0;启动梯子&#x1f96a;cmd 启动UnityHub &#x1f959;关闭UnityHub &#x1f9c0;启动梯子 &#x1f96a;cmd 启动UnityHub 把批处理启动文件&#x1f448;中的exe的路径换成自己的安装目录&#xff01;保存…

前端项目对接protobufjs的时候,踩坑总结

Protobuf&#xff08;Protocol Buffers&#xff09;是一种用于序列化结构化数据的语言无关、平台无关、可扩展的机制。在JS/TS项目中&#xff0c;使用WebSocket与Protobuf可以实现高效的通信和数据传输。protobufjs官方仓库:https://github.com/protobufjs/protobuf.js 安装pro…

SpringBoot-多数据源切换和事物处理(免费)

作者原始文章: SpringBoot-多数据源切换和事物处理 最新内容和改动请看上面的文章 安装 <dependency><groupId>com.gitee.huanminabc</groupId><artifactId>dynamic-datasource</artifactId><version>1.0.3-RELEASE</version> <…

算法训练day21Leetcode530二叉搜索树的最小绝对差501二叉搜索中的众数236二叉树最近公共祖先

530 二叉搜索树的最小绝对差 题目描述 https://leetcode.cn/problems/minimum-absolute-difference-in-bst/description/ 我的想法 中序遍历二叉树存入数组&#xff0c;再遍历数组求节点之间的最小差值 我的acm模式代码 #include <iostream> #include <vector&g…

几款提高开发效率的Idea 插件

1、ignore 开发代码过程中经常会有一些需要提交到代码仓库的文件&#xff0c;比如java文件生成的.class、.jar 等&#xff0c;如果将编译后的文件都提交到代码库那么代码库会很大&#xff0c;关键是没有必要。 这款插件就可以很方便的解决某类文件或者某个文件夹不需要提交到…

密闭空间可燃气体监测终端:守护燃气管网安全

在这个瞬息万变的时代&#xff0c;燃气安全问题始终是我们关注的焦点。地下燃气管线因老化或腐蚀等造成燃气泄漏&#xff0c;并扩散至地下管沟、窨井等相邻空间&#xff0c;引发爆炸的风险&#xff0c;尤其在密闭空间中潜在的危险常常不易察觉&#xff0c;但一旦发生事故&#…

ROS学习笔记10——自定义源文件调用

调用自定义源文件的时候需要配置cmakelists文件&#xff0c;刚学感觉还挺繁琐&#xff0c;用一个小案例记录一下。 1、随便写个头文件 在功能包的 include/功能包名 目录下创建一个头文件 记得在 .vscode 下 c_cpp_properties.json 的 includepath属性中把路径加进去 #ifnd…

OpenCV书签 #余弦相似度的原理与相似图片/相似文件搜索实验

1. 介绍 余弦相似度&#xff08;Cosine Similarity&#xff09;&#xff0c;又称为余弦相似性&#xff0c;是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度仅仅与向量的指向方向相关&#xff0c;与向量的长度无关&#xff0c;它将向量根据坐标值绘制到向量空间…

HJ10 字符个数统计【C语言】

【华为机试题 HJ10】字符个数统计 描述输入描述:输出描述:示例1示例2参考代码1描述 编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例…

1130 - Host 182.244.45,94‘ is not allowed to connect to this MySQL server

1130 - Host 182.244.45,94’ is not allowed to connect to this MySQL server MySQL错误代码 1130 表明连接 MySQL 服务器的主机被拒绝。在这个错误消息中&#xff0c;你提到的是主机 “182.244.45.94”&#xff0c;但可能有一个小错误&#xff0c;IP 地址中的逗号应该是点&…

5、直方图和密度图(数据分布)

创建直方图和密度图 在本教程中,您将了解有关直方图和密度图的所有知识。 文章目录 1、设置笔记本2、直方图3、密度图4、2D KDE 图4、颜色编码的图1、设置笔记本 我们首先设置编程环境。(此代码是隐藏的,但你可以通过点击此文本右侧的 “Code” 按钮来显示它。) In [1]: i…

SpringBoot3集成Zookeeper

一、简介 ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步、提供组服务。分布式应用程序以某种形式使用所有这些类型的服务。 二、环境搭建 1、修改配置文件 # 1、拷贝一份样本配置文件 cp zookeeper-3.8.3/conf/zoo_sample.cfg zookeeper-3.8.3/conf/…

【笔记】Android Telephony | SIM 卡管理和subId、slotId、phoneId 定义关系说明

相关业务背景 DSDS双卡双待 &#xff1a;手机可以插入两张手机卡&#xff0c;而且能同时待机&#xff0c;但是某一时刻只能有一张卡上有电话。 一个SIM卡代表一个账号&#xff0c;那么双卡手机就意味着多账户&#xff0c;需要增加多账户管理和业务处理。 账号管理&#xff1…

【Java 设计模式】行为型之责任链模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;用于将请求发送者和接收者解耦&#xff0c;使得多个对象都有机会处理请求。责任链模式通过创建一个处理请求的链&#xff0c;…

【STM32】STM32学习笔记-W25Q64简介(37)

00. 目录 文章目录 00. 目录01. SPI简介02. W25Q64简介03. 硬件电路04. W25Q64框图05. Flash操作注意事项06. 预留07. 附录 01. SPI简介 在大容量产品和互联型产品上&#xff0c;SPI接口可以配置为支持SPI协议或者支持I 2 S音频协议。SPI接口默认工作在SPI方式&#xff0c;可以…