思路:
用层序遍历,只不过每一次都将同一层的结点全部加入队列。然后每次都保存那个最先入队的节点值。最后输出的就是最下面一层最左边的结点值。
相似的题见 No. 102 二叉树的层序遍历。
class Solution {
public int findBottomLeftValue(TreeNode root) {
Queue<TreeNode> que = new LinkedList<>();
que.offer(root);
int left = 0;
while(!que.isEmpty())
{
int nums = que.size();
TreeNode l = que.peek();
left = l.val;
while(nums>0)
{
TreeNode t = que.poll();
if(t.left!=null)
que.offer(t.left);
if(t.right!=null)
que.offer(t.right);
nums--;
}
}
return left;
}
}