题目:
给定一个二叉树的 根节点 root
,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
思路:层序遍历,遍历每层时记录最左边的节点值,直到遍历最后一层时可以得到树的最左下方节点的值。
代码:
public int findBottomLeftValue(TreeNode root) {
Queue<TreeNode> queue=new LinkedList<>();
if(root!=null)
queue.offer(root);
int result=0;
while(!queue.isEmpty()){
int len=queue.size();
for(int i=0;i<len;i++){
TreeNode node=queue.poll();
if(i==0) result=node.val;//记录每一层的最左边的节点值
if(node.left!=null)
queue.offer(node.left);
if(node.right!=null)
queue.offer(node.right);
}
}
return result;
}