面试题60:把二叉树打印成多行
2017-04-28 22:51
369 查看
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
解:
队列实现
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
解:
队列实现
/* 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>> result; if(!pRoot) return result; int toBePrinted = 1; int nextLevel = 0; queue<TreeNode*> q; q.push(pRoot); vector<int> v; while(!q.empty()){ TreeNode* pCur = q.front(); q.pop(); v.push_back(pCur->val); --toBePrinted; if(pCur->left){ q.push(pCur->left); ++nextLevel; } if(pCur->right){ q.push(pCur->right); ++nextLevel; } if(!toBePrinted){ result.push_back(v); v.clear(); toBePrinted = nextLevel; nextLevel = 0; } } return result; } };
相关文章推荐
- 剑指offer 面试题60 把二叉树打印成多行
- 面试题60:把二叉树打印成多行
- 剑指offer——面试题60:把二叉树打印成多行
- 【剑指Offer学习】【面试题60:把二叉树打印出多行】
- 面试题60:把二叉树打印成多行
- 剑指offer面试题[60]-将二叉树打印成多行
- 【剑指Offer学习】【面试题60:把二叉树打印出多行】
- 剑指offer--面试题60:把二叉树打印成多行
- 【剑指Offer】面试题60:把二叉树打印成多行
- 剑指Offer面试题60:把二叉树打印成多行 Java实现
- (剑指Offer)面试题60:把二叉树打印成多行
- 《剑指Offer》学习笔记--面试题60:把二叉树打印出多行
- 面试题60:把二叉树打印成多行
- 剑指offer面试题60 把二叉树打印成多行(Java实现)
- 剑指offer-面试题60-把二叉树打印成多行
- 面试题60. 把二叉树打印成多行
- 剑指Offer_60_把二叉树打印成多行
- (C++)剑指offer-60:把二叉树打印成多行(树)
- 剑指offer——60.把二叉树打印成多行
- (剑指Offer)面试题61:把二叉树打印成多行