这道题让我们求树的最底层的最左边的元素。
解答:
像这种求树的一层中的某个元素的题一般用bps。我们用val记录每一层的第一个元素,用bps遍历到最后,val就是最后一层的第一个元素。
public int findBottomLeftValue(TreeNode root) {
LinkedList<TreeNode> q = new LinkedList<>();
int val = 0;
q.offer(root);
while (!q.isEmpty()) {
val = q.peekFirst().val;
int size = q.size();
for (int i = 0; i < size; i++) {
TreeNode cur = q.poll();
if (cur.left != null) {
q.offer(cur.left);
}
if (cur.right != null) {
q.offer(cur.right);
}
}
}
return val;
}