找树左下角的值

简介: 找树左下角的值

一、题目描述:

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。

假设二叉树中至少有一个节点。

示例 1:

img

输入: root = [2,1,3]
输出: 1
示例 2:

img

输入: [1,2,3,4,null,5,6,null,null,7]
输出: 7

提示:

二叉树的节点个数的范围是 [1,104]
-231 <= Node.val <= 231 - 1

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-bottom-left-tree-value
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、思路分析:

很明显通过层序遍历找到最后一层然后返回第一个值即可,那么问题也就拆分为两个

如何找到最后一层
使用一个队列,每一次循环队列中所有的子节点加入到队列中,然后将循环队列中的子节点pop掉,最后一次循环也就是没有子节点加入的一次循环即为最后一层
如何记录每层最左边的值
使用一个全局变量,每次循环时先把第一个队列元素拿出来做记录,其他的不做处理,这样子每次记录的就是这一层的最左边的元素,然后循环跑完记录的也就是最后一层的元素

三、AC 代码:

class Solution {
    int h = 0, val = 0;
    public int findBottomLeftValue(TreeNode root) {
        dfs(root, 1);
        return val;
    }

    public void dfs(TreeNode root, int height) {
        if (root != null) {
            if (height > h) {
                h = height;
                val = root.val;
            }
            dfs(root.left, height + 1);
            dfs(root.right, height + 1);
        }
    }
}

四、总结:

image.png

掘友们,解题不易,留下个赞或评论再走吧!谢啦~ 💐

希望对你有帮助,期待您找到心意的工作和满意的offer

期待下次再见~

🌇 点赞 👍 收藏 ⭐留言 📝 一键三连 ~关注从你我做起! \

相关文章
|
5月前
|
C++ Python
leetcode-513:找树左下角的值
leetcode-513:找树左下角的值
34 0
19_找树左下角的值
19_找树左下角的值
|
5月前
如何实现按钮的图片在右边,文字在左边
如何实现按钮的图片在右边,文字在左边
63 0
|
算法 Cloud Native
【刷题日记】513. 找树左下角的值
本次刷题日记的第 74 篇,力扣题为:513. 找树左下角的值 ,中等
|
5月前
|
存储 算法 Java
给定一组棋子的坐标,判断是否可以互相攻击。如果两个棋子的横纵坐标任意一个相同,则认为它们可以互相攻击。(提示:使用哈希表)
给定一组棋子的坐标,判断是否可以互相攻击。如果两个棋子的横纵坐标任意一个相同,则认为它们可以互相攻击。(提示:使用哈希表)
42 0
|
5月前
|
机器学习/深度学习 算法 C++
【算法 | 实验6-1】n*n的网格,从左上角开始到右下角结束遍历所有的方块仅一次,总共有多少种不同的遍历路径
前言 思路介绍中省略了关于如何进行回溯搜索的细节,而主要讨论回溯中所使用的剪枝策略。
120 0
|
12月前
解决 010Edittor 复制右边到左边的问题
解决 010Edittor 复制右边到左边的问题
136 1
LeetCode-2038 如果相邻两个颜色均相同则删除当前颜色
LeetCode-2038 如果相邻两个颜色均相同则删除当前颜色
leetcode 513 找左下角的值
leetcode 513 找左下角的值
54 0
leetcode 513 找左下角的值
|
存储 Python
LeetCode 513. 找树左下角的值
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
45 0