码迷,mamicode.com
首页 > 其他好文 > 详细

刷题102. Binary Tree Level Order Traversal

时间:2020-03-03 20:27:40      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:层遍历   next   queue   入队   back   pop   solution   time   run   

一、题目说明

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

三、优化措施

不再做任何优化了。

刷题102. Binary Tree Level Order Traversal

标签:层遍历   next   queue   入队   back   pop   solution   time   run   

原文地址:https://www.cnblogs.com/siweihz/p/12266335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!