/**
 * 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;
};

参考链接

力扣题目

https://programmercarl.com/


SnowWolfArden
24 声望10 粉丝

喜欢解决问题,每日复盘 600 天以上。