Cover image for Classic Interview 150 Questions P102 Binary Tree Level Order Traversal

Classic Interview 150 Questions P102 Binary Tree Level Order Traversal


Timeline

Timeline

2025-10-31

init

Level order traversal

Problem:

Level-order traversal

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
struct TreeNode {	int val;	TreeNode *left;	TreeNode *right;	TreeNode()		: val(0)		, left(nullptr)		, right(nullptr)	{	}	TreeNode(int x)		: val(x)		, left(nullptr)		, right(nullptr)	{	}	TreeNode(int x, TreeNode *left, TreeNode *right)		: val(x)		, left(left)		, right(right)	{	}};#include <vector>#include <queue>#include <utility>using std::vector;using std::queue;class Solution {    public:	vector<vector<int> > levelOrder(TreeNode *root)	{		int i, n;		queue<TreeNode *> que;		vector<vector<int> > res;		TreeNode *p;		res.reserve(32); // Reserve space to avoid multiple reallocations		if (root == nullptr) {			return res;		}		que.push(root);		while (!que.empty()) {			n = que.size();			vector<int> vec(n);			for (i = 0; i < n; i++) {				p = que.front();				que.pop();				vec[i] = p->val;				if (p->left)					que.push(p->left);				if (p->right)					que.push(p->right);			}			res.push_back(std::move(vec));		}		return res;	}};

leetcode hot100 rewrite

123456789101112131415161718192021222324252627282930313233343536
#include <vector>#include <queue>using std::vector;using std::queue;class Solution {    public:        vector<vector<int> > levelOrder(TreeNode *root)        {                int i, n;                vector<vector<int> > res;                queue<TreeNode *> que;                TreeNode *p;                if (root)                        que.push(root);                while (!que.empty()) {                        n = que.size();                        vector<int> curr_level;                        for (i = 0; i < n; i++) {                                p = que.front();                                que.pop();                                curr_level.push_back(p->val);                                if (p->left)                                        que.push(p->left);                                if (p->right)                                        que.push(p->right);                        }                        res.push_back(curr_level);                }                return res;        }};
Loading comments…