Given a binary tree, find the leftmost value in the last row of the tree.
class Solution {
public int findBottomLeftValue(TreeNode root) {
TreeNode lastLeft = root;
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while (!queue.isEmpty()) {
TreeNode newLeft = null;
int length = queue.size();
for (int i = 0; i < length; i++) {
TreeNode node = queue.remove();
if (node.left != null) {
queue.add(node.left);
}
if (node.right != null) {
queue.add(node.right);
}
if (i == 0) {
lastLeft = node;
}
}
}
return lastLeft.val;
}
}
时间复杂度O(n).