zoukankan      html  css  js  c++  java
  • 刷题102. Binary Tree Level Order Traversal

    一、题目说明

    题目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.
    

    三、优化措施

    不再做任何优化了。

    所有文章,坚持原创。如有转载,敬请标注出处。
  • 相关阅读:
    php 解析json
    TP学习笔记一(tp的目录结构 , tp的输出方式)
    linux android真机测试
    SharedPreferences保存数据
    Volley用法
    android获得图片
    android 一条线
    android 获取时间
    Android_Spinner_Listener
    Android_Spinner_SimpleAdapter
  • 原文地址:https://www.cnblogs.com/siweihz/p/12266335.html
Copyright © 2011-2022 走看看