把二叉树打印成多行:最直观的想法是,层次遍历,较为简单。
vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int>> res; if(!pRoot) return res; queue<TreeNode*> que; vector<int> temp; que.push(pRoot); while(!que.empty()) { // 注意如果直接在for循环写que.size其是变化的 int len=que.size(); temp.clear(); // 每一层有que.size个元素 for(int i=0;i<len;i++) { TreeNode * cur=que.front(); temp.push_back(cur->val); que.pop(); if(cur->left) que.push(cur->left); if(cur->right) que.push(cur->right); } res.push_back(temp); } return res; }