剑指offer045-二叉树最底层最左边的值
题目
给定一个二叉树的 根节点 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
注意:本题与主站 513 题相同: https://leetcode-cn.com/problems/find-bottom-left-tree-value/
Related Topics
树深度优先搜索广度优先搜索二叉树 👍 11👎 0
思路
二叉树的层次遍历
广度优先搜索
只需要记录每一层的第一个节点即可
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
class Solution { public int findBottomLeftValue(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); int res = root.val; while (!queue.isEmpty()) { int size = queue.size(); res = queue.peek().val; while (size > 0) { TreeNode t = queue.poll();
if (t.left != null) { queue.offer(t.left); }
if (t.right != null) { queue.offer(t.right); }
size--; } } return res; } }
|
1 2 3
| 解答成功: 执行耗时:1 ms,击败了82.35% 的Java用户 内存消耗:38.1 MB,击败了38.56% 的Java用户
|