给定一个二叉树的 根节点 root
,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
思路:层次遍历
每次遍历一层时,记录下每层的最左侧元素,当结束层次遍历时,记录的就是所求结果。
public static int findBottomLeftValue(TreeNode root){
int leftValue=0;
Queue<TreeNode> queue=new LinkedList();
queue.add(root);
while (!queue.isEmpty()){
int size=queue.size(); //记录每层的个数
leftValue=queue.peek().val; //记录每层最左侧的值
for(int i=0;i<size;i++){
TreeNode node=queue.poll();
if(node.left!=null) queue.add(node.left);
if(node.right!=null) queue.add(node.right);
}
}
return leftValue;
}