解题思路
普通的广度优先搜索。不同的是广度优先搜素运用在这个问题上时,需要记得:搜索离 root 节点距离相同的一批节点时,要遵循先搜右边的,再搜左边的。这样,我们最后搜索得到的就是最左下角的节点。
代码
class Solution {
public int findBottomLeftValue(TreeNode root) {
Queue<TreeNode> nodes = new LinkedList<>();
nodes.offer(root);
while(!nodes.isEmpty()) {
for (int i = 0; i < nodes.size(); i ++) {
TreeNode node = nodes.poll();
if (nodes.isEmpty() && node.left == null && node.right == null) {
return node.val;
}
if (node.right != null) {
nodes.offer(node.right);
}
if (node.left != null) {
nodes.offer(node.left);
}
}
}
return 0;
}
}