1. Full Level Order Storage
Intuition
BFS level order storing all elements. Loop rows and append row.back().
When to apply: Basic baseline check.
Algorithm
- Step 1: If root == null return [].
- Step 2: Standard BFS queue storing levels in 2D list.
- Step 3: Extract last element of each level list.
- Step 4: Return result.
#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std; class Solution {public: vector<int> rightSideView(TreeNode* root) { if (!root) return {}; vector<vector<int>> levels; queue<TreeNode*> q; q.push(root); while (!q.empty()) { int sz = q.size(); vector<int> cur; for (int i = 0; i < sz; ++i) { TreeNode* node = q.front(); q.pop(); cur.push_back(node->val); if (node->left) q.push(node->left); if (node->right) q.push(node->right); } levels.push_back(cur); } vector<int> res; for (auto& lvl : levels) res.push_back(lvl.back()); return res; }}; int main() { // Sample driver execution cout << "Execution completed successfully." << endl; return 0;} Time & Space Complexity
- Time complexity:
O(n)— Stores all n nodes in 2D array. - Space complexity:
O(n)— 2D array holds n integers.