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

刷题——输出二叉树的右视图

输出二叉树的右视图_牛客题霸_牛客网

两个考点:

给出前序和后续遍历的二叉树,构建二叉树

二叉树构建后,输出右视图

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 求二叉树的右视图* @param preOrder int整型vector 先序遍历* @param inOrder int整型vector 中序遍历* @return int整型vector*/
TreeNode* buildTree(vector<int>& xianxu, int l1, int r1, vector<int>& zhongxu, int l2, int r2)
{if(l1>r1 || l2 > r2) return NULL;TreeNode* root = new TreeNode(xianxu[l1]);int rootIndex = 0;for(int i = l2; i<=r2; i++){if(zhongxu[i] == xianxu[l1]){rootIndex = i;break;}}int leftsize = rootIndex - l2;int rightsize = r2 - rootIndex;root->left = buildTree(xianxu, l1 + 1, l1 + leftsize, zhongxu, l2, l2 + leftsize -1);root->right = buildTree(xianxu, r1 - rightsize +1, r1, zhongxu, rootIndex +1, r2);return root;
}vector<int> rightSideView(TreeNode* root)
{vector<int>ans;if(!root) return ans;queue<TreeNode*> q;q.push(root);while(!q.empty()){int cnt = q.size();for(int i= 0; i<cnt; i++){TreeNode* cur = q.front();q.pop();if(cur->left) q.push(cur->left);if(cur->right) q.push(cur->right);if(i == cnt -1)ans.push_back(cur->val);}}return ans;}vector<int>solve(vector<int>&xianxu, vector<int>& zhongxu)
{vector<int>res;if(xianxu.size() == 0) return res;TreeNode* root = buildTree(xianxu, 0, xianxu.size()-1,zhongxu,0,zhongxu.size()-1);return rightSideView(root);
}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 5-一元函数微分学的应用(一)——几何应用
  • Qt 线程 QThread类详解
  • 【ROS2】中级-在单个进程中组合多个节点
  • 【CW32F030CxTx StartKit开发板】利用超声波传感器实现智能灯控
  • MacOS和Windows中怎么安装Redis
  • Nginx 是一个非常流行的 Web 服务器和反向代理服务器
  • 【Unity2D 2022:Particle System】添加拾取粒子特效
  • 【LeetCode】12. 小张刷题计划
  • 【大模型LLM面试合集】大语言模型基础_Word2Vec
  • [吃瓜教程]南瓜书第6章支持向量机
  • 【咨询】企业数字档案馆(室)建设方案-模版范例
  • 高职物联网实训室
  • linux查看当前路径下各个文件的大小,仅到当前路径
  • Python | Leetcode Python题解之第223题矩形面积
  • Spring Boot集成rmi快速入门demo
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • ES6核心特性
  • Git 使用集
  • JS 面试题总结
  • LeetCode算法系列_0891_子序列宽度之和
  • maya建模与骨骼动画快速实现人工鱼
  • Python 基础起步 (十) 什么叫函数?
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Vue 动态创建 component
  • 阿里云应用高可用服务公测发布
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 经典排序算法及其 Java 实现
  • 面试遇到的一些题
  • 前端面试之CSS3新特性
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 试着探索高并发下的系统架构面貌
  • 我是如何设计 Upload 上传组件的
  • 译自由幺半群
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • # 达梦数据库知识点
  • #《AI中文版》V3 第 1 章 概述
  • #mysql 8.0 踩坑日记
  • #传输# #传输数据判断#
  • (1)Jupyter Notebook 下载及安装
  • (7)svelte 教程: Props(属性)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (ibm)Java 语言的 XPath API
  • (javaweb)Http协议
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (九)信息融合方式简介
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • ... 是什么 ?... 有什么用处?
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .equals()到底是什么意思?
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .naturalWidth 和naturalHeight属性,
  • .NET Micro Framework初体验
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。