题目描述
给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入:
2
/ \ 1 3
输出:
1
示例 2:
输入:
1
/ \ 2 3
/ / \ 4 5 6
/
7
输出:
7
思路
广度优先搜索。每次搜索一层,同时记录第一个值,也就是这一层最左边的值。最后一层,最左边的值,即是左下角的值。
解法
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
const findBottomLeftValue = root => {
const queue = [root];
let result;
while (queue.length) {
result = queue[0].val;
const nodes = [...queue];
queue.length = 0;
while (nodes.length) {
const node = nodes.shift();
if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}
}
return result;
};