数据结构07

news2024/11/16 3:19:10

文章目录

  • 二叉树的坡度
  • 二叉树的右视图

二叉树的坡度

在这里插入图片描述

/**
 * 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:
    int findTilt(TreeNode* root) {
        if(root==NULL)return 0;

        return abs(treesum(root->left)-treesum(root->right))+findTilt(root->left)+findTilt(root->right);       
    }
    int treesum(TreeNode* node){
        if(node==NULL)return 0;
        else return node->val+treesum(node->left)+treesum(node->right);
    }
};

二叉树的右视图

在这里插入图片描述
递归:
层次遍历的变体。其中C++和java语言中都有一个重要的if筛选条件,
也就是
条件1.vector或者List的长度小于当前的lever值的时候才将结点的值入vector或者List,
还有一个条件是2.先遍历右孩子再遍历左孩子;
这就保证了始终保留的是最右结点。不妨对照题干上的例子对照进行单步脑海运行一下

/**
 * 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:

void recursion(TreeNode* root,int level,vector<int>& res){

    if(root==NULL)return;
    if(res.size()<level)res.push_back(root->val);
    recursion(root->right,level+1,res);
    recursion(root->left,level+1,res);

}
    vector<int> rightSideView(TreeNode* root) {
        vector<int> res;
        recursion(root,1,res);
        return res;
    }
};

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

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

相关文章

配置vscode终端自动激活anaconda的python环境

前言 每次使用vscode写python代码的时候&#xff0c;都需要在外面跑一个anaconda prompt&#xff0c;激活环境&#xff0c;然后进入对应的文件夹&#xff0c;运行代码&#xff0c;特别麻烦&#xff0c;所以想&#xff0c;能不能直接在vscode终端里面激活环境然后运行。 第一步…

FIFO求和实验

前言 FIFO&#xff08;先进先出&#xff09;队列在图像处理中的应用非常广泛&#xff0c;特别是在需要处理实时数据流和保证数据顺序的场景中。以下是一些具体应用实例&#xff1a;在实时视频流处理中&#xff0c;FIFO队列用于缓存图像帧。这样可以确保图像数据按照捕获顺序被处…

828华为云征文|华为云Flexus X实例docker部署harbor镜像仓库

828华为云征文&#xff5c;华为云Flexus X实例docker部署harbor镜像仓库 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求&#xff0c;一定不要错…

如何培养积极的心态:策略与建议

积极的心态是通往幸福与成功的关键。它不仅影响着我们的日常生活质量&#xff0c;还决定了我们在面对困难时的态度和反应。本文将介绍一些实用的方法&#xff0c;帮助你建立并维持一种积极向上的生活态度。 积极心态的意义 拥有积极心态的人往往能够&#xff1a; 更快地恢复…

avi转换成mp4,这6种方法助你快速转换

视频格式的兼容性一直是用户关注的焦点。AVI作为一种较老的视频格式&#xff0c;虽然在一些特定场合下仍有应用&#xff0c;但MP4格式因其广泛的兼容性和较小的文件体积&#xff0c;已成为主流的视频格式。本文将详细介绍六种将AVI转换成MP4的方法&#xff0c;一起来了解下吧。…

安卓手机照片误删? 2024最新恢复办法分享

不小心将安卓手机照片误删了&#xff0c;该怎么办呢&#xff1f;相信不少人都遇到过类似困扰&#xff0c;别担心&#xff0c;下面小编就分享几种华为手机数据恢复办法&#xff0c;助大家快速找回误删照片。 方法一&#xff1a;从「回收站」中恢复照片 安卓手机通常都具备回收站…

17 连接池原理

可以设计一个mysql的连接池&#xff0c;提高效率 提前建立一个连接池&#xff0c;这里面创建线程池&#xff0c;和mysql建立连接&#xff0c;维护一个任务队列。有任务到来时&#xff0c;将任务放入任务队列&#xff0c;任务结构是要执行的sql语句和需要的回调函数&#xff0c…

信息化项目验收测试的必要性,第三方软件测评机构的进行步骤

随着信息化时代的到来&#xff0c;各类软件项目在企业中得到了越来越广泛的应用。为了保障项目的顺利交付&#xff0c;确保软件系统的功能、性能和稳定性&#xff0c;验收测试成为了一个不可或缺的环节。 一、信息化项目验收测试   信息化项目验收测试是对软件项目最终成果进…

py脚本 银行帐号格式化显示4个数字一组

假设你想要将银行帐号以某种特定的格式&#xff08;例如&#xff0c;每 4 位数字加一个空格&#xff09;进行格式化。 示例代码 以下是一个示例 Python 脚本&#xff0c;将银行帐号格式化为每 4 位数字加一个空格的形式&#xff1a; def format_bank_account(account_number…

CSS实现文字环绕圆形展示

展示区域 代码区域 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

Webpack详解与配置环境

webpack&#xff1a;webpack网址 1、工作原理&#xff1a; Webpack是一个非常强大的静态模块的打包工具。从文件入口开始&#xff0c;递归解析以来关系&#xff0c;然后将所有模块打包成一个或多个budle文件。 2、webpack核心概念&#xff1a; Entry&#xff1a;入口起点(en…

前端使用xlsx模板导出表格

前言 前端导出表格有很多种方案&#xff0c;但是表格样式一旦复杂了&#xff0c;那么就得用代码写excel的样式&#xff0c;还是比较麻烦的。每次样式不一样&#xff0c;就得重新写&#xff0c;这时使用表格模板的优势就体现出来了&#xff0c;想导出不同样式的表格直接修改表格…

UMI复现代码解读全流程 视觉部分(六)——06_generate_dataset_plan.py(尚在更新)

视觉主要采用orb-slam3,分为主文件run_slam_pipeline和7个副文件在文件夹scripts_slam_pipeline中 06生成了pkl文件,是run_slam_pipeline的最终一步 06注释版已发到群里 06是一个比较重要的文件,定义了训练时的运动末端参数,作为训练输入 @click.option(-to, --tcp_offset…

uniapp 懒加载、预加载、缓存机制深度解析

uniapp 懒加载、预加载、缓存机制深度解析 文章目录 uniapp 懒加载、预加载、缓存机制深度解析一、为什么要使用uniapp的懒加载、预加载和缓存机制二、如何使用uniapp的懒加载、预加载和缓存机制1. 懒加载2. 预加载3. 缓存机制 四、扩展与高级技巧1. 结合懒加载和预加载优化页面…

2024数博会技术成果回顾 | KPaaS助力企业数智化转型

2024年8月28日至30日&#xff0c;中国国际大数据产业博览会&#xff08;简称“数博会”&#xff09;在贵州省贵阳市隆重举行。本届数博会以“数智共生&#xff1a;开创数字经济高质量发展新未来”为主题&#xff0c;吸引了来自全球各地的400多家企业和2.1万余名嘉宾参与&#x…

UART串口通信——FPGA学习笔记9

一、数据通信基本概念 按数据通信方式分类&#xff1a; 串行通信、并行通信 按数据传输方向分类&#xff1a; 单工通信、半双工通信、全双工通信 按数据同步方式分类&#xff1a; 同步通信、异步通信 常见的串行通信接口&#xff1a; 二、串口通信&#xff1a; UART 是一种…

Cobalt Strike 4.8 用户指南-第六节-Payload Artifacts和反病毒规避

Fortra 经常回答有关规避的问题。Cobalt Strike 会绕过反病毒产品吗&#xff1f;它绕过了哪些反病毒产品&#xff1f;多久检查一次&#xff1f; Cobalt Strike 默认Artifact可能会被大多数端点安全解决方案拦截。尽管规避不是Cobalt Strike产品默认的目标&#xff0c;但Cobalt…

记一次cms的web渗透测试练习

点击文章发现 尝试进行sql注入 得到漏洞为数字型 通过order by语句得到字段总数为15 通过union联合查询得到显示的字段编号 将database()带入得到数据库名为cms 接下来就是查表名、字段名、具体数据 发现密码经过加密&#xff0c;尝试解密 通过解密得知admin账户的密码为12…

潮玩宇宙斗兽场游戏源码多个猿猴boss模式玩法开发成品案例代码示例

潮玩宇宙中的斗猿场是很多潮玩人都喜欢玩的一种大逃杀类游戏&#xff0c;玩法大概是这样的&#xff0c;玩家选择一个格子躲避恶猿&#xff0c;满足人数后恶猿会按随机数顺时针前行&#xff0c;在某个格子停留后杀死里面所有猴子&#xff0c;被踩中的格子内的玩家则会被恶猿杀掉…

glsl着色器学习(十)缩放

对二维图形进行缩放&#xff0c;需要用到顶点着色器&#xff0c;顶点着色器经过矩阵变换&#xff0c;会将模型空间最终转换成裁剪空间。下面就来操作矩阵 这里需要用到一个库glMatrix。 首先修改顶点着色器 <script id"vertex-shader-2d" type"x-shader/x-…