把二叉树打印成多行
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
vector<vector<int>> Print(TreeNode* pRoot) { vector<vector<int>> res; if(!pRoot) return res; vector<int> ivec; int tmp,cnt = 1; queue<TreeNode *>q; q.push(pRoot); while(!q.empty()){ tmp = cnt; ivec.clear(); cnt = 0; while(tmp--){ ivec.push_back(q.front()->val); if(q.front()->left){ q.push(q.front()->left); cnt++; } if(q.front()->right){ q.push(q.front()->right); cnt++; } q.pop(); } res.push_back(ivec); } return res; }