56.把二叉树打印成多行

把二叉树打印成多行
  • 参与人数:1574时间限制:1秒空间限制:32768K
  •  算法知识视频讲解

题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
这道题可以在55题的基础上把level判断去掉,就可以了。
class Solution {
public:
        vector<vector<int> > Print(TreeNode* pRoot) {
        		vector< vector<int> > retVec;
		if (pRoot == NULL) return retVec;

		vector<TreeNode*> cur;
		vector<TreeNode*> next;
		

		cur.push_back(pRoot);
		while (!cur.empty() || !next.empty()) {
			vector<int> tmp;
			for (int i = 0; i < cur.size(); i++) {
				tmp.push_back(cur[i]->val);

				TreeNode* nodeTmp = cur[i];
				if (nodeTmp->left)
					next.push_back(nodeTmp->left);
				if (nodeTmp->right)
					next.push_back(nodeTmp->right);
			}


			retVec.push_back(tmp);

			cur.clear();
			cur = next;
			next.clear();
		}
		return retVec;
        }
    
};


你可能感兴趣的:(56.把二叉树打印成多行)