当前位置: 首页 > news >正文

力扣9.2

199.二叉树的右视图

题目

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

数据范围
  • 二叉树的节点个数的范围是 [0,100]
  • -100 <= Node.val <= 100
分析

树的层次遍历,每次返回那一层最边上的元素,可以使用两个deque实现

代码
/*** 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 {
public:deque<TreeNode*> tmp, ve;vector<int> res; void bfs(TreeNode* q) {ve.push_back(q);while(ve.size()) {tmp = ve;res.push_back(ve.back()->val);ve.clear();while(tmp.size()) {auto now = tmp.front();tmp.pop_front();auto l = now -> left, r = now -> right;if(l != nullptr) ve.push_back(l);if(r != nullptr) ve.push_back(r);}}}vector<int> rightSideView(TreeNode* root) {if(root == nullptr) return res;bfs(root);return res;}
};

637.二叉树的层平均值

题目

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

数据范围
  • 树中节点数量在[1, 104] 范围内
  • -2^31 <= Node.val <= 2^31 - 1
分析

使用两个vector实现树的层次遍历

代码
/*** 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 {
public:vector<TreeNode*> tmp1, tmp2;vector<double> res;void bfs(TreeNode* p) {tmp2.push_back(p);while(tmp2.size()) {tmp1 = tmp2;tmp2.clear();double ave = 0;double cnt = 0;while(tmp1.size()) {auto now = tmp1.back();ave += now -> val;cnt += 1;tmp1.pop_back();auto l = now -> left, r = now -> right;if(l != nullptr) tmp2.push_back(l);if(r != nullptr) tmp2.push_back(r);}res.push_back(ave / cnt);}} vector<double> averageOfLevels(TreeNode* root) {bfs(root);return res;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • World of Warcraft [CLASSIC][80][Grandel]Sapphire Hive Drone
  • Nvidia股价前景引投资者情绪波动:杠杆ETF数据透视市场风向
  • k8s集群搭建
  • 工业软件架构4:(QT和C++实现)
  • 二十五、go语言的通道
  • 代码随想录算法训练营第32天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 8.28路虎女事件
  • 掌握 JavaScript 解构赋值的指南
  • 蜜罐网络MHN安装过程中的坑
  • Pytorch实现多层LSTM模型,并增加emdedding、Dropout、权重共享等优化
  • Windows 下载安装RabbitMQ
  • 干货分享:推荐四大在线翻译神器!
  • 26. 在集合中删除元素时,为什么使用Iterator.remove()而不是Collection.remove()?
  • GeoScene Pro教程(004):GeoScene Pro制作与使用矢量切片包
  • STL之string
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【comparator, comparable】小总结
  • 08.Android之View事件问题
  • input的行数自动增减
  • input实现文字超出省略号功能
  • Js基础——数据类型之Null和Undefined
  • Linux后台研发超实用命令总结
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Otto开发初探——微服务依赖管理新利器
  • php面试题 汇集2
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 前端面试之CSS3新特性
  • 手机端车牌号码键盘的vue组件
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • ionic异常记录
  • "无招胜有招"nbsp;史上最全的互…
  • $refs 、$nextTic、动态组件、name的使用
  • (04)odoo视图操作
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (笔记)M1使用hombrew安装qemu
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一) springboot详细介绍
  • (转)3D模板阴影原理
  • (转)LINQ之路
  • (转)visual stdio 书签功能介绍
  • (自用)交互协议设计——protobuf序列化
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • [ Linux ] Linux信号概述 信号的产生
  • [《百万宝贝》观后]To be or not to be?
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [20171113]修改表结构删除列相关问题4.txt
  • [APIO2012] 派遣 dispatching
  • [BUG] Authentication Error
  • [C++] Windows中字符串函数的种类