🧩Algo 二叉树
199. 二叉树的右视图
难度:🟡 Medium | 标签:树、BFS | 状态:⬜ LeetCode 链接
思路
BFS 每层取最后一个节点。 DFS 也可:根 → 右 → 左 顺序,按层数记录第一次访问。
代码
class Solution {
public:
vector<int> rightSideView(TreeNode* root) {
vector<int> res;
if (!root) return res;
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
int sz = q.size();
for (int i = 0; i < sz; ++i) {
auto* x = q.front(); q.pop();
if (i == sz - 1) res.push_back(x->val);
if (x->left) q.push(x->left);
if (x->right) q.push(x->right);
}
}
return res;
}
};
复杂度
- 时间 O(n),空间 O(n)
易错 / 回顾
- 每层最后一个是当前层 size - 1 位置
- 左视图:取
i == 0即可
Related · 二叉树