[LeetCode]199. 二叉树的右视图(java实现)宽度优先搜索bfs
1. 题目
2. 读题(需要重点注意的东西)
思路(bfs):
注意: 本题不是返回的右链,而是返回的是每一层的最右边的节点
因此使用宽搜 bfs ,然后输出每一层最右边的节点 即可。
3. 解法
---------------------------------------------------解法---------------------------------------------------
class Solution {
public List<Integer> rightSideView(TreeNode root) {
List<Integer> list = new ArrayList<>();
if(root == null) return list;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()){
int k = queue.size();
for(int i = 0;i < k;i++){
TreeNode temp = queue.poll();
if(temp.left != null) queue.offer(temp.left);
if(temp.right != null) queue.offer(temp.right);
if(i == k - 1) list.add(temp.val);
}
}
return list;
}
}
可能存在的问题:
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
6. 总结
宽度优先搜索 模板题,推荐背下来!
|