day22-513.找树左下角的值

news2024/11/20 14:21:24

513.找树左下角的值

力扣题目链接(opens new window)

给定一个二叉树,在树的最后一行找到最左边的值。

示例 1:

513.找树左下角的值

示例 2:

513.找树左下角的值1

思路

迭代

迭代的思路最简单,只需层序记录每一层的第一个结点即可,代码如下:

class Solution {
public:
    int findBottomLeftValue(TreeNode* root) {
        queue<TreeNode*> qu;
       int res;
        if(root != nullptr)qu.push(root);
        while(!qu.empty()){
            int size = qu.size();
            for(int i=0;i<size;i++){
                TreeNode* node = qu.front();   qu.pop();
                if(i==0)res = node->val;
                if(node->left)qu.push(node->left);
                if(node->right)qu.push(node->right);
            }
        } 
        return res;
    }
};

递归

递归的思路则不太好理解。首先要确定树左下角的值是指什么?是指深度最大的一层中的叶子结点。

因此我们用depth表示深度,取深度最大的结点赋值即可。

遍历顺序我们选用前序遍历。

class Solution {
private:
    int res;
    int maxdepth;
public:
    int findBottomLeftValue(TreeNode* root) {
        maxdepth = INT_MIN;
        dis(root,0);
        return res;
    }
    void dis(TreeNode* root, int depth){
        if(root->left == nullptr && root->right == nullptr){
            if(depth>maxdepth){
                maxdepth = depth;
                res = root->val;
            }
        }
        if(root->left){
            dis(root->left,depth+1);
        }
        if(root->right){
            dis(root->right,depth+1);
        }
        return ;
    }
};
     dis(root->right,depth+1);
    }
    return ;
}

};


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

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

相关文章

HR专家:未来零代码开发将成求职热门,你准备好了吗?

一名五十五岁的农民&#xff0c;毫无程式设计经验&#xff0c;靠著自己自学零码开发&#xff0c;竟为他的家乡建起了六个数位资讯系统&#xff0c;其中一个更是带动了乡村“厕所革命”。阿里云说&#xff0c;“也许10-15年以前&#xff0c;公司的招聘会要求员工能够使用 WORD, …

【沁恒蓝牙mesh】CH58x USB功能开发记录(三)

本博文主要记录 &#xff0c;【沁恒蓝牙mesh】CH58x USB功能开发记录&#xff08;三&#xff09;&#xff0c;数据收发基于寄存器级别解释 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是喜欢记录零碎知识点的小菜鸟。&#x1f60e;&#x1f4dd; 个人主页&#xf…

阿秀思考了很久,最后还是决定啦!

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 小伙伴们大家好&#xff0c;我是阿秀。 经常看我文章的应该知道今年我过得很是颠簸&#xff0c;从今年二月份到现在我经历了很多事。 从《关于我组长跑路我被顶上来了这件事》、《天啦撸&#x…

再谈领导力和组织能力

&#xff08;1&#xff09;一个笑话 说的是一个人去买鸟&#xff1a; 问左边的鸟多少钱&#xff0c;卖鸟的人说十块钱。问为啥这么贵&#xff1f;卖鸟的人说它长的好看。 问右边的鸟多少钱&#xff0c;卖鸟的人说二十块钱。问为啥这么贵&#xff1f;卖鸟的人说它会学人讲话。 问…

JVM如何调优

一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范&#xff0c;JVM将内存划分为&#xff1a; New&#xff08;年轻代&#xff09; Tenured&#xff08;年老代&#xff09; 永久代&#xff08;Perm&#xff09; 其中New和Tenured属于堆内存&#xff0c;堆内存会从JVM启动参…

面试热题(LRU缓存)

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回 -1 …

实现5*5正方形网格x轴和y轴显示对应数值组件封装

实现5*5正方形网格x轴和y轴显示对应数值组件封装 需求&#xff1a;按5*5的正方形网格&#xff0c;根据目标数据的x和y轴值显示对应的文字&#xff0c;实现效果图如下&#xff1a;&#xff08;当前目标数值&#xff1a;x2&#xff0c;y2&#xff09; 代码如下&#xff1a; <…

华为运动健康,十年创新天地宽

我听一位朋友讲过这样一个故事。某天早上&#xff0c;急诊科的医生迎来了一位患者&#xff0c;患者进来后直接说&#xff1a;“大夫&#xff0c;我房颤了。” 这位医生非常诧异&#xff0c;因为心脏房颤确实非常危急&#xff0c;但很多时候并没有明显的生理体征&#xff0c;患者…

源码下载安装nginx

文章目录 下载安装nginx1、准备工作2、下载源码包3、安装4、启动nginx5、网页访问首页 下载安装nginx 1、准备工作 Nginx的安装需要提前安装Linux的几个库&#xff0c;避免编译和配置错误 安装gcc编译器 yum install gcc -y安装openssl库 yum install openssl openssl-dev…

CSS 盒模型是什么?它包含哪些属性?标准盒模型/怪异盒模型

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 盒模型⭐ 标准盒模型⭐ 怪异盒模型⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感…

SQL必知必会读书笔记

文章目录 **不同的DB语法格式不尽相同**第一课 了解SQL术语 第二课 检索数据语法格式检索列检索唯一不同值限制结果&#xff08;数量&#xff09; 第三课 排序检索数据使用说明 第四课 过滤数据WHERE子句操作符 第五课 高级数据过滤1、组合WHERE子句2、IN操作符3、NOT操作符 第…

kube-prometheus 使用 blackbox-exporter 进行icmp 监控

安装kube-prometheus 后默认在monitoring namespace中有创建 blackbox-exporter deployment。但默认没有icmp的module配置&#xff0c;无法执行ping探测。因为即使有icmp module&#xff0c;默认配置也是无法执行ping探测的&#xff08;这篇文章要解决的就是这个问题&#xff0…

尚品汇总结十:秒杀模块(面试专用)

1、需求分析 所谓“秒杀”&#xff0c;就是商家发布一些超低价格的商品&#xff0c;所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉&#xff0c;往往一上架就被抢购一空&#xff0c;有时只用一秒钟。 秒…

数据结构----结构--线性结构--链式存储--链表

数据结构----结构–线性结构–链式存储–链表 1.链表的特点 空间可以不连续&#xff0c;长度不固定&#xff0c;相对于数组灵活自由 搜索&#xff1a; 时间复杂度O(n) 增删: 头增头删时间复杂度O(1) 其他时间复杂度为O(n) 扩展&#xff1a;单向循环链表的特性 从任意节…

【数据分享】2023年我国省市县三级的上市公司数量(Excel/Shp格式)

企业是经济活动的参与主体&#xff0c;一个城市的企业数量决定了这个城市的经济发展水平&#xff01;在众多公司企业中&#xff0c;上市公司堪称明珠&#xff0c;上市公司通常经济规模大、影响力强、员工多。哪个城市的上市公司更多&#xff0c;往往这个城市的经济实力越强&…

Flowable-结束事件-错误结束事件

目录 定义图形标记XML内容界面操作使用示例视频教程 定义 错误结束事件会在流程到达错误结束事件的时候抛出错误&#xff0c;并结束当前的流程分支。异常结束 事件是有抛出结果的&#xff0c;它需要定义抛出错误码&#xff0c;如果找到了异常开始事件错误码&#xff0c;就会触…

【网络编程(一)】Socket入门实操与BIO详讲

Socket 两台计算机使用Socket套接字进行 TCP 连接数据传输时过程如下&#xff1a; 服务器实例化一个 ServerSocket 对象&#xff0c;表示通过服务器上的端口通信。服务器调用 ServerSocket 类的 accept() 方法&#xff0c;该方法一直会等待&#xff0c;直到客户端连接到服务器…

[编程开发工具-6]:master 分支和 dev 分支区别

目录 Git 中的 master 分支和 dev 分支之间有几个重要的区别&#xff1a; Git分支实践&#xff1a; master: develop: Feature: feature/{故障号_description}。 hotfix: Git 中的 master 分支和 dev 分支之间有几个重要的区别&#xff1a; 功能&#xff1a;master 分支是…

2.5D游戏是如何做出来的呢,2.5D游戏快速制作教程

前言 【Unity实战篇 】 | 如何制作一款2.5D游戏&#xff0c;2.5D游戏制作案例一、2.5D 游戏概念二、绘制地图三、添加玩家动画和移动等操作四、视角配置4.1 调整摄像机与场景对象的角度4.2 增加镜头旋转功能 五、游戏效果展示 总结 前言 玩过游戏的朋友都知道&#xff0c;市面…

sql注入漏洞

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 原因危害如何挖寻找注入点测试是否有绕过实质分类sqli靶场盲注时间盲注别人的总结UA注入referer注入DNSlog外带cookie注入宽字节注入堆叠注入sqlmap工具getshellacc…