代码随想录算法训练营第十四天| 226.翻转二叉树 、101. 对称二叉树、104.二叉树的最大深度 (优先掌握递归)、111.二叉树的最小深度

news/2024/10/6 3:53:43/文章来源:https://www.cnblogs.com/zhuyishao/p/18285593

二叉树学习2

226题翻转二叉树,改一下前序递归遍历,每次遍历的时候都调换一下左右结点即可。

class Solution {
public:
void preorder(TreeNode *root) {if (root == nullptr) {return;}TreeNode* tmp;tmp = root->left;root->left = root->right;root->right = tmp;preorder(root->left);preorder(root->right);}TreeNode* invertTree(TreeNode* root) {preorder(root);return root;}
};

101判定是不是对称二叉树,我的做法太麻烦了,对两棵树分别遍历(中左右 中右左),再比较值是否相同,其实可以放在一个函数里一次性解决。

class Solution {
public:void preorder1(TreeNode *root, vector<int> &res) {if (root == nullptr) {res.push_back(-101);return;}res.push_back(root->val);preorder1(root->left, res);preorder1(root->right, res);}void preorder2(TreeNode *root, vector<int> &res) {if (root == nullptr) {res.push_back(-101);return;}res.push_back(root->val);preorder2(root->right, res);preorder2(root->left, res);}bool isSymmetric(TreeNode* root) {vector<int> res;vector<int> ans;preorder1(root->left, res);preorder2(root->right, ans);// 比较两个数组for (int i = 0; i < res.size(); i++) {if (res[i] != ans[i])  return false;}return true;}
};

104题二叉树的最大深度 111题二叉树的最小深度在上一节完成了

class Solution {
public:int maxDepth(TreeNode* root) {queue<TreeNode*> que;if (root != NULL) que.push(root);vector<vector<int>> result;int depth = 0;while (!que.empty()) {int size = que.size();vector<int> vec;// 这里一定要使用固定大小size,不要使用que.size(),因为que.size是不断变化的for (int i = 0; i < size; i++) {TreeNode* node = que.front();que.pop();vec.push_back(node->val);if (node->left) que.push(node->left);if (node->right) que.push(node->right);}result.push_back(vec);depth++;}return depth;}
};
class Solution {
public:int minDepth(TreeNode* root) {if (!root) {return 0;}queue<TreeNode*> que;que.push(root);int depth = 0;while (!que.empty()) {int size = que.size();vector<int> vec;// 这里一定要使用固定大小size,不要使用que.size(),因为que.size是不断变化的for (int i = 0; i < size; i++) {TreeNode* node = que.front();que.pop();vec.push_back(node->val);if (!node->left && !node->right) {return ++depth;}if (node->left) que.push(node->left);if (node->right) que.push(node->right);}depth++;}return depth;}
};

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

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

相关文章

服务器忘记IP后找回IP地址

在工程现场,我们时常会遇到忘记BMC IP地址的情况,在忘记BMC IP后有两种方法可以帮助我们找回忘记的IP地址 1、外接显示器(在服务器开机过程中右下角会显示出IP地址)2、通过抓包软件(Wireshark)来抓取设备发到广播报 前提条件服务器先完全断电 电脑网口和IPMI口直连,确保…

【日记】今天好忙(316 字)

正文今天一整天都是疯忙的节奏。上午开户,一来来俩。从 9 点到 12 点,中间连轴转没停过。昨天睡得还可以,不过上午依旧很困。昨晚跟兄长打了一晚上的掳人少女人偶,没打过…… 宫崎英高!你罪该万死!搞这么难…….昨晚也因为去的时候在下雨,所以没什么人来练习。只有我和大…

KIM论文阅读笔记

Personalized News Recommendation with Knowledge-aware Interactive Matching论文阅读笔记 Abstract 现存的问题: ​ 现有的大多数新闻推荐方法都是从文本内容和用户点击的新闻中分别建立候选新闻模型和用户兴趣模型。然而,一篇新闻可能涉及多个方面和实体,而用户通常有不…

Docker 构建nginx镜像

步骤: (1)创建一个目录,把构建Nginx的Dockerfile文件保存到此目录。 创建一个名为nginxDockerfile的目录。mkdir nginxDockerfile(2)进入刚才创建好的目录。cd nginxDockerfile(3)创建Dockerfile文件。vim dockerfile 文件内容如下FROM centos MAINTAINER xpx RUN yum…

es库-连接工具-chrome插件:Elasticsearch-Head

Elasticsearch-Head如何连接es数据库呢: 1.下载Elasticsearch-Head插件压缩包 2.解压文件夹,是这样的: 3.打开chrome浏览器的 扩展程序管理 然后,点击“加载已解压的扩展程序”: 找到 并且选中 你压缩es-head文件夹的根目录-》点击“选择文件夹”: 到目前就加载上es-head…

《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》课后习题答案(带解析)(五)

此系列答案配套《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》一书相关内容。所有内容为博主个人编辑,仅作参考学习交流之用,转载请注明出处。如发现错误,请联系博主及时勘误。如有侵权行为,博主将立即下架全部内容。声明:此系列答案配套《计…

《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》课后习题答案(带解析)(四)

此系列答案配套《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》一书相关内容。所有内容为博主个人编辑,仅作参考学习交流之用,转载请注明出处。如发现错误,请联系博主及时勘误。如有侵权行为,博主将立即下架全部内容。声明:此系列答案配套《计…

数字经济时代:AI+引领企业数字化新高度

"AI+"指将人工智能技术与各行各业深度融合,从研发到场景应用再到产业打造,实现全链条赋能,是数字经济中创新应用的典型代表,也是传统企业转型升级的强大引擎——不仅是技术层面的创新,更是一种全新的思维方式和工作模式,要求企业在战略规划、组织结构、业务流程…

金蝶云苍穹追光者开发大赛,点燃高校AI应用创新之火

作为践行金蝶 “All in AI” 战略、推动 “订阅优先、AI 优先” 的核心开发者赛事,「第六届金蝶云・苍穹追光者开发大赛」正如火如荼地进行,吸引了众多高校开发者的热情参与,点燃高校 AI 应用创新之火。在 2024 年的政府工作报告中,"人工智能 +" 行动被提出,标志…

vue3 父子组件双向绑定

父组件 ParentComponent.vue<!-- ParentComponent.vue --> <template><div>子组件输入的数据<p>Parent Value: {{ parentValue }}</p>父输入框<input v-model="parentValue"><CustomInput v-model="parentValue" /…