513. 找树左下角的值(层级遍历)


513. 找树左下角的值(层级遍历)

题目

给定一个二叉树,在树的最后一行找到最左边的值。
在这里插入图片描述

解题思路

用层级遍历,维护一个变量firstNode来存放每一层的第一个节点。我们从左往右的层级便遍历,因为firstNode是在循环里面,也就是每一次循环,即每一层:都会更新一次firstNode。到最后一次更新,firstNode保存的就是最后一层的第一个值,又因为是从左往右层级遍历,所以firstNode最后存放的就是我们要的左下角的值

代码

class Solution {
   
    public int findBottomLeftValue(TreeNode root) {


        Queue<TreeNode> q=new LinkedList<>();
    
        int firstNode=-1;

        q.offer(root);
        while(!q.isEmpty()){
            int count=q.size();//该层节点的个数

            for(int i=0;i<count;i++){
                TreeNode cur=q.poll();
                    if(i==0){
                        firstNode=cur.val;//存放每一层的第一个节点,最后一次循环,这个值就是最后一层的第一个节点了。也就是最左边的值
                    }

                    if(cur.left!=null){
                        q.offer(cur.left);
                    }
                    if(cur.right!=null){
                        q.offer(cur.right);
                    }
                }                
            }
            return firstNode;
        }
}

文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录