树有几层知道的话可以这样
把二叉树打印成多行
http://www.nowcoder.com/questionTerminal/445c44d982d04483b04a54f298796288
vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int> > ret; if(!pRoot) return ret; queue<TreeNode*> q; q.push(pRoot); int cnt = 0; int base = 1; vector<int> tmp; for(int i = 0;i <4096;i ++) { TreeNode* p = q.front(); q.pop(); cnt ++; if(p) tmp.push_back(p->val);//cout<<p->val<<" "; if(cnt==base) { cnt = 0; base = (base<<1); // cout<<endl; if(tmp.size()!= 0) { vector<int> t; for(int i= 0;i < tmp.size();i ++) { t.push_back(tmp[i]); } ret.push_back(t); tmp.clear(); } } if(p) { q.push(p->left); q.push(p->right); }else { q.push(NULL); q.push(NULL); } } return ret; }