1. Full BFS Level Order Traversal
Intuition
Run standard level-order traversal up to level K. Collect all nodes at level K.
When to apply: Basic baseline check.
Algorithm
- Step 1: If root == null return [].
- Step 2: Queue q with root.
- Step 3: Loop level from 0 to K: if level == K, return all elements in queue.
- Step 4: Dequeue level and push children.
#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std; class Solution {public: vector<int> Kdistance(TreeNode* root, int k) { if (!root) return {}; queue<TreeNode*> q; q.push(root); int curLvl = 0; while (!q.empty()) { int sz = q.size(); if (curLvl == k) { vector<int> res; while (!q.empty()) { res.push_back(q.front()->val); q.pop(); } return res; } for (int i = 0; i < sz; ++i) { TreeNode* cur = q.front(); q.pop(); if (cur->left) q.push(cur->left); if (cur->right) q.push(cur->right); } curLvl++; } return {}; }}; int main() { // Sample driver execution cout << "Execution completed successfully." << endl; return 0;} Time & Space Complexity
- Time complexity:
O(n)— BFS visits nodes up to level K. - Space complexity:
O(w)— Queue holds level width w.