算法:Binary Tree Level Order Traversal

来源:互联网 发布:单片机最小系统是什么 编辑:程序博客网 时间:2024/06/05 11:45
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).


For example:
Given binary tree [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \

   15   7




class Solution {public:    vector<vector<int>> levelOrder(TreeNode* root) {        vector<vector<int>> levelHolder;                if(root==NULL)            return levelHolder;                    vector<int>* aLvl = new vector<int>();        deque<TreeNode*> Q;        Q.push_back(root);        Q.push_back(NULL);                while(!Q.empty())        {            TreeNode *n = Q.front();            Q.pop_front();                        if(n!=NULL)            {                aLvl->push_back(n->val);                                if(n->left!=NULL)                    Q.push_back(n->left);                if(n->right!=NULL)                    Q.push_back(n->right);            }            else            {                levelHolder.push_back(*aLvl);                aLvl = new vector<int>();                Q.push_back(NULL);            }                        if(n==NULL && Q.size()==1)                break;        }                return levelHolder;    }};


0 0