力扣 513. 找树左下角的值

这篇具有很好参考价值的文章主要介绍了力扣 513. 找树左下角的值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目来源:https://leetcode.cn/problems/find-bottom-left-tree-value/description/

力扣 513. 找树左下角的值

C++题解1:是寻找最底层最左边的节点,不是最底层的左子树节点! !

使用层序遍历,判断左右子树是不是叶子节点,进而判断是不是该层的最左边节点,用flg来标记,所以flg需要在每一层开始时进行更新。

class Solution {
public:
    int findBottomLeftValue(TreeNode* root) {
        queue<TreeNode*> que;
        if (root != NULL) que.push(root);
        int result = 0;
        while (!que.empty()) {
            int size = que.size();
            for (int i = 0; i < size; i++) {
                TreeNode* node = que.front();
                que.pop();
                if (i == 0) result = node->val; // 记录最后一行第一个元素
                if (node->left) que.push(node->left);
                if (node->right) que.push(node->right);
            }
        }
        return result;
    }
};

C++题解2(来源代码随想录):递归法,寻求最大深度的叶子节点,前序遍历。文章来源地址https://www.toymoban.com/news/detail-508568.html

class Solution {
public:
    int maxDepth = INT_MIN;
    int result;
    void traversal(TreeNode* root, int depth) {
        if (root->left == NULL && root->right == NULL) {
            if (depth > maxDepth) {
                maxDepth = depth;
                result = root->val;
            }
            return;
        }
        if (root->left) {
            traversal(root->left, depth + 1); // 隐藏着回溯
        }
        if (root->right) {
            traversal(root->right, depth + 1); // 隐藏着回溯
        }
        return;
    }
    int findBottomLeftValue(TreeNode* root) {
        traversal(root, 0);
        return result;
    }
};

到了这里,关于力扣 513. 找树左下角的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法刷题Day18 找树左下角的值+路径总和+从中序与后序遍历构造二叉树

    一眼层序遍历 层序遍历 回溯的方法 《剑指Offer》有“从前序与中序遍历序列构造二叉树”的讲解,这里把前序换成后序,应该是差不多的思路

    2024年02月16日
    浏览(42)
  • 算法训练day18Leetcode找树左下角的值112路径总和106从中序和后续遍历构造二叉树

    找出深度最大的叶子节点,左遍历在前 我们来分析一下题目:在树的最后一行找到最左边的值。 首先要是最后一行,然后是最左边的值。 如果使用递归法,如何判断是最后一行呢,其实就是深度最大的叶子节点一定是最后一行。 如果对二叉树深度和高度还有点疑惑的话,请

    2024年01月21日
    浏览(52)
  • Ubuntu vi 左下角没有提示

    1 打开终端,输入以下命令 sudo gedit /etc/vim/vimrc.tiny  2 进入文件后,修改 set compatible 为set nocompatible,如下所示: \\\" Vim configuration file, in effect when invoked as \\\"vi\\\". The aim of this \\\" configuration file is to provide a Vim environment as compatible with the \\\" original vi as possible. Note that ~/.vimrc configurati

    2024年02月12日
    浏览(38)
  • 解决SVN左下角图标不显示(图文详解)

    首先解释以下为什么会发生这样的现象: 因为WindowsExporerShell所支持的Overlay Icon最多十五个,当前面十五个被其他软件或者windows系统自身占用,svn就被顶掉从而无法使用,结果就是图标消失。 解决方法就是将注册表中svn图标重命名,使其在前十五个中。下面是详细步骤。 按

    2024年02月07日
    浏览(40)
  • 如何打开vscode侧边栏左下角的NPM脚本

    点击进入设置 依次点击用户、扩展、Npm、依次设置三个地方 重启VSCode,点开项目中的package.json,就可以在左下看到NPM脚本

    2024年02月13日
    浏览(46)
  • 如何去除苹果MacOS中快捷方式(替身)左下角的箭头

    要去除桌面替身文件左下角的剪头,您可以使用一个名为“LiteIcon”的免费应用程序。这款应用允许您自定义 Mac 中的各种系统图标,包括替身文件的图标。以下是使用 LiteIcon 去除替身文件剪头的方法: 访问 LiteIcon 官网 并下载最新版本。请确保下载与您的 macOS 版本兼容的

    2024年02月12日
    浏览(31)
  • css实现鼠标滑动左下角弹框带动画效果

    代码 css代码 实现效果    

    2024年02月14日
    浏览(47)
  • idea 左下角的Git(Version Control)中显示Local Changes窗口

    打开Local Changes窗口来查看当前Git仓库的本地变更。 使用快捷键: - Windows: Alt+9 - Mac: Cmd+9 通过以上方式,就可以在IDEA中快速打开Local Changes窗口,查看Git项目的本地变更情况,十分方便。 OK啦,完美解决! 

    2024年02月10日
    浏览(45)
  • Android 13 骁龙相机点击拍照流程分析(一)——点击拍照到更新到左下角缩略图

    由于最近客户定制需要将文件挂载类型修改为sdcardfs,由于修改了文件挂载类型,导致了骁龙相机拍照后不能点击进入相册,故对骁龙相机从点击事件开始进行问题的排查,此处不介绍最终的sdcardfs挂载后的问题解决方案 拍照的流程大概分为几个阶段:打开相机进行预览、点

    2024年02月04日
    浏览(52)
  • 惠普电脑/笔记本电脑为什么左下角会出现 按 ESC 进入启动选项,怎么关闭

    惠普电脑/笔记本电脑为什么左下角会出现 按 ESC 进入启动选项,怎么关闭 查看: 现象提示图片示例: ![v 出现原因 出现这个提示,说明你关闭了 『安全启动』,开启了 『传统模式』 解决方法 首先确定你的硬盘分区是 『MBR 』还是 『GPT』,如果你的『引导盘/系统盘分区』

    2024年02月10日
    浏览(175)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包