二叉树打印成多行

来源:互联网 发布:java 线程池封装 编辑:程序博客网 时间:2024/05/29 19:26

<span style="font-family: arial, STHeiti, 'Microsoft YaHei', 宋体; line-height: 22.3999996185303px; background-color: rgb(255, 255, 255);">从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。</span>
<span style="font-family: arial, STHeiti, 'Microsoft YaHei', 宋体; line-height: 22.3999996185303px; background-color: rgb(255, 255, 255);"></span><pre name="code" class="cpp">/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:        vector<vector<int> > Print(TreeNode* pRoot) {            vector<vector<int> > Vec;            if(!pRoot) return Vec;              queue<TreeNode*> queueTreeNode;             queueTreeNode.push(pRoot);              while(!queueTreeNode.empty())            {                int i = 0, num = queueTreeNode.size();                vector<int> layerVec;                while(i++ < num)                {                    TreeNode *pNode = queueTreeNode.front();                    queueTreeNode.pop();                    layerVec.push_back(pNode->val);                    if(pNode->left)                        queueTreeNode.push(pNode->left);                    if(pNode->right)                        queueTreeNode.push(pNode->right);                }                Vec.push_back(layerVec);            }                         return Vec;        }   };


0 0
原创粉丝点击