一、题目说明

题目102. Binary Tree Level Order Traversal,给一个二叉树,返回按层遍历的各节点,每层返回一个数组。

二、我的解答

这个题目是普通的二叉树按层遍历,没什么难度。代码如下:

class Solution{
	public:
		vector<vector<int>> levelOrder(TreeNode* root){
			vector<vector<int>> r;
			TreeNode* p;
			if(root ==NULL) return r;
			queue<TreeNode*> q;
			q.push(root);
			int curLevelNum = 1,nextLevelNum=0;

			while(! q.empty()){
				//出队列 
				vector<int> cur;
				for(int i=0;i<curLevelNum;i++){
					p = q.front();
					cur.push_back(p->val);
					q.pop();
					
					//入队列
					if(p->left !=NULL){
						q.push(p->left);
						nextLevelNum++;
					} 
					if(p->right !=NULL){
						q.push(p->right);
						nextLevelNum++;
					}
				}
				curLevelNum = nextLevelNum;
				nextLevelNum = 0;
				r.push_back(cur);	
			}
			return r;
		}
};

性能如下:

Runtime: 8 ms, faster than 60.42% of C++ online submissions for Binary Tree Level Order Traversal.
Memory Usage: 13.8 MB, less than 90.14% of C++ online submissions for Binary Tree Level Order Traversal.

三、优化措施

不再做任何优化了。

相关文章:

  • 2021-07-05
  • 2021-05-30
  • 2021-05-21
  • 2021-11-06
  • 2021-08-14
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-05
  • 2021-06-16
  • 2021-05-29
  • 2021-08-31
相关资源
相似解决方案