专栏首页眯眯眼猫头鹰的小树杈513. Find Bottom Left Tree Value

513. Find Bottom Left Tree Value

题目要求

Given a binary tree, find the leftmost value in the last row of the tree.

Example 1:

Input:

    2
   / \
  1   3

Output: 1

Example 2:

Input:

        1
       / \
      2   3
     /   / \
    4   5   6
       /
      7

Output: 7

Note: You may assume the tree (i.e., the given root node) is not NULL. 现有一棵二叉树,要求找到树中最后一行最左边的节点的值。

思路和代码

这题其实就是考察树的遍历。那么如何遍历树能够找到最后一行最左边的值呢?首先一个就是水平遍历,逐个遍历树的每一行,每次都记录该行最左边的值。当没有下一行时,则返回当前记录的行的最左边的值。

还有一种方法就是通过后序遍历。每次遍历时将当前节点所在的深度传递过去,并且和已知的最远行数进行比较。如果深度大于当前的行数,则说明该值是最远处的最左边的值。

代码如下:

    int depth = 0;
    int value = 0;
    public int findBottomLeftValue(TreeNode root) {
        findBottomLeftValue(root, 1);
        return value;
    }

    public void findBottomLeftValue(TreeNode root, int depth) {
        if (root == null) return;
        if (root.left == null && root.right == null && depth > this.depth) {
            value = root.val;
            this.depth = depth;
            return;
        }
        findBottomLeftValue(root.left, depth+1);
        findBottomLeftValue(root.right, depth+1);
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • leetcode449. Serialize and Deserialize BST

    将二叉搜索树序列化和反序列化,序列化是指将树用字符串的形式表示,反序列化是指将字符串形式的树还原成原来的样子。

    眯眯眼的猫头鹰
  • leetcode429. N-ary Tree Level Order Traversal

    这个和一般的水平遍历有所区别,因为它会记录每一行的水平遍历结果分别存在结果数组相应行。因此首先可以用水平遍历的通用解法,即队列的方式,进行解决:

    眯眯眼的猫头鹰
  • leetcode468. Validate IP Address

    校验该字符串是IPV4地址还是IPV6地址还是二者都不是。 IPV4地址通过小数点分割为4个部分,每个部分都是0~255之间的正整数,且不能包含开头的0,如01...

    眯眯眼的猫头鹰
  • Binary Tree Level Order Traversal

    问题:从上到下打印二叉树的每一行 分析:先搜出二叉树的高度,然后遍历高度,每次搜索一个高度 class Solution { public: int d...

    用户1624346
  • DHCP原理与自建DHCP服务

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。它是一种流行的C...

    小柒吃地瓜
  • hadoop基础入门教程--DKHadoop配置安装教程

    使用hadoop版本是DKH标准三节点发行版,DKHadoop版本的易用性比较好,环境部署要简单的多,参考此篇安装前请先下载DKHadoop版本,网盘链接:ht...

    IT小白龙
  • 大数据Hadoop快速入门教程

    1、Hadoop生态概况 Hadoop是一个由Apache基金会所开发的分布式系统集成架构,用户可以在不了解分布式底层细节情况下,开发分布式程序,充分利用集群的...

    CSDN技术头条
  • leetcode第513题-找树左下角的值

    Given a binary tree, find the left most value in the last row of the tree.

    程序员小王
  • Jenkins+Python部署完整版

    一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试,如果发现外网部署...

    py3study
  • Linux用户权限管理

    章鱼喵

扫码关注云+社区

领取腾讯云代金券