加载中...
513-找树左下角的值(Find Bottom Left Tree Value)
发表于:2021-12-03 | 分类: 中等
字数统计: 178 | 阅读时长: 1分钟 | 阅读量:

原文链接: https://leetcode-cn.com/problems/find-bottom-left-tree-value

英文原文

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

 

Example 1:

Input: root = [2,1,3]
Output: 1

Example 2:

Input: root = [1,2,3,4,null,5,6,null,null,7]
Output: 7

 

Constraints:

  • The number of nodes in the tree is in the range [1, 104].
  • -231 <= Node.val <= 231 - 1

中文题目

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

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

 

示例 1:

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

示例 2:

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

 

提示:

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

通过代码

高赞题解

解题思路

一般的层序遍历是每层从左到右,遍历到最后的元素就是右下角元素。
如果反过来,每层从右到左进行层序遍历,最后一个就是左下角元素,直接输出即可,不需要记录深度。

代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def findBottomLeftValue(self, root: TreeNode) -> int:
        if not root:
            return -1
        queue = collections.deque()
        queue.append(root)
        while queue:
            cur = queue.popleft()
            if cur.right:   # 先右
                queue.append(cur.right)
            if cur.left:    # 后左
                queue.append(cur.left)
        return cur.val

统计信息

通过次数 提交次数 AC比率
57229 78265 73.1%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言
上一篇:
508-出现次数最多的子树元素和(Most Frequent Subtree Sum)
下一篇:
514-自由之路(Freedom Trail)
本文目录
本文目录