欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LintCode 二叉树的层次遍历

程序员文章站 2022-07-15 23:27:48
...

LintCode 二叉树的层次遍历
二叉树的层次遍历,一层层从上往下遍历;前中后序遍历是深度遍历,使用栈,按倒序;层次遍历是广度遍历,使用队列,按顺序;

vector<vector<int>> levelOrder(TreeNode * root) {
        // write your code here
        queue<TreeNode *> queue;
        vector<vector<int>> vec;
        if(! root)
            return vec;
        queue.push(root);
        while( ! queue.empty())
        {
            vector<int> vec_temp;
            int num=queue.size();
            for(int i=0;i<num;i++)
            {
                TreeNode *front=queue.front();
                queue.pop();
                vec_temp.push_back(front->val);
                if(front->left)
                    queue.push(front->left);
                if(front->right)
                    queue.push(front->right);
            }
            vec.push_back(vec_temp);
        }
        return vec;
    }

vector vec_temp 这是一维的矢量,vector