题目大意是给出一个二叉树要找出最底层的最左的叶节点。
思路很简单,用广度优先搜索,我们每次将子节点放入队列时按照右节点先进左节点后进的方法,这样子队列的最后一项就是最后一层的最左节点了。代码如下:
class Solution {
public int findBottomLeftValue(TreeNode root) {
int result=0;
LinkedList<TreeNode> queue=new LinkedList<TreeNode>();
queue.offer(root);
while(!queue.isEmpty()){
TreeNode node=queue.poll();
result=node.val;
if(node.right!=null)
queue.offer(node.right);
if(node.left!=null)
queue.offer(node.left);
}
return result;
}
}