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