题目
给定一个二叉树的 根节点 root
,请找出该二叉树的 最底层 最左边节点的值。
假设二叉树中至少有一个节点。
示例 1:
输入: root = [2,1,3]
输出: 1
1
2
2
示例 2:
输入: [1,2,3,4,null,5,6,null,null,7]
输出: 7
1
2
2
提示:
- 二叉树的节点个数的范围是
[1,10
4]
-2
31<= Node.val <= 2
31- 1
注意:本题与主站 513 题相同: https://leetcode-cn.com/problems/find-bottom-left-tree-value/
题解
java
public int findBottomLeftValue(TreeNode root) {
int result = 0;
// 层序遍历队列
Queue<TreeNode> queue = new ArrayDeque<>();
queue.offer(root);
int size;
TreeNode t;
while (!queue.isEmpty()) {
size = queue.size();
for (int i = 0; i < size; i++) {
t = queue.poll();
// 队列头为每层的最左侧元素
if (i == 0) {
result = t.val;
}
// 左右树入队
if (Objects.nonNull(t.left)) {
queue.offer(t.left);
}
if (Objects.nonNull(t.right)) {
queue.offer(t.right);
}
}
}
return result;
}
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
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