/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var findBottomLeftValue = function(root) {
let res=null
// 采纳层序遍历
let layer=[] // 以后层
layer.push(root) // 把根节点存入,作为第一层
while(layer.length){
let len=layer.length;// 以后层的数量
for(let i=0;i<len;i++){ // 每次的 for 循循环遍历的是下一层,for 循环后生成下一层,如果 while 中 layer 的数量大于 1,代表还有下一层
// 队列的第一个出列
let head=layer.shift()
if(i==0){
// 下一层的第一个节点,就是最底层的最右边的值;res=head.val
}
head.left&&layer.push(head.left)
head.right&&layer.push(head.right)
}
}
return res;
};
参考链接
力扣题目