通过万岁!!!
- 题目:找到一个二叉树的最下面一层的最左边的元素。
- 思路:直接用层序遍历,每次拿到下面一层,然后就把最左边的元素保存一下即可。当然,用深度优先也是可以的,深度有限的时候有一个深度需要进行记录。
- 技巧:层序遍历
java代码
class Solution {
public int findBottomLeftValue(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
int ans = root.val;
int size;
TreeNode remove;
while (!queue.isEmpty()) {
size = queue.size();
for (int i = 0; i < size; i++) {
TreeNode remove = queue.remove();
if (i == 0) {
ans = remove.val;
}
if (remove.left != null) {
queue.add(remove.left);
}
if (remove.right != null) {
queue.add(remove.right);
}
}
}
return ans;
}
}
- 总结:题目还是比较简单的,这里总结一下,深度优先一般用递归,广度优先(层序遍历)一般用队列。