原文链接: 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% |
提交历史
提交时间 | 提交结果 | 执行时间 | 内存消耗 | 语言 |
---|