博客 / 詳情

返回

Day 11/100 二叉樹的層序遍歷

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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.