剑指Offer——把二叉树打印成多行
2017-11-03 11:57
260 查看
题目描述:
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
分析:
二叉树的层次遍历,利用队列。
代码:
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
分析:
二叉树的层次遍历,利用队列。
代码:
1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9 }; 10 */ 11 class Solution { 12 public: 13 vector<vector<int> > Print(TreeNode* pRoot) { 14 vector<vector<int> > res; 15 if(pRoot == NULL) return res; 16 queue<TreeNode*> q1, q2; 17 q1.push(pRoot); 18 while(1) { 19 vector<int> v1; 20 while(!q1.empty()) { 21 TreeNode* top = q1.front(); 22 v1.push_back(top->val); 23 if(top->left) q2.push(top->left); 24 if(top->right) q2.push(top->right); 25 q1.pop(); 26 } 27 res.push_back(v1); 28 if(q2.empty()) break; 29 vector<int> v2; 30 while(!q2.empty()) { 31 TreeNode* top = q2.front(); 32 v2.push_back(top->val); 33 if(top->left) q1.push(top->left); 34 if(top->right) q1.push(top->right); 35 q2.pop(); 36 } 37 res.push_back(v2); 38 if(q1.empty()) break; 39 } 40 return res; 41 } 42 };
相关文章推荐
- 剑指offer面试题60 把二叉树打印成多行(Java实现)
- 剑指Offer面试题60:把二叉树打印成多行 Java实现
- 剑指Offer—60—把二叉树打印成多行
- 【剑指Offer学习】【面试题60:把二叉树打印出多行】
- 剑指offer——60.把二叉树打印成多行
- 剑指offer(C++)——把二叉树打印成多行
- 【剑指offer-解题系列(61)】把二叉树打印成多行
- 剑指offer--面试题60:把二叉树打印成多行
- 剑指offer 把二叉树打印成多行
- 剑指offer—把二叉树打印成多行
- 剑指offer-把二叉树打印成多行-php
- 剑指offer | 训练题59:把二叉树打印成多行
- 剑指offer——把二叉树打印成多行
- 剑指offer_把二叉树打印成多行+之字形
- 剑指offer-面试题60-把二叉树打印成多行
- 剑指Offer--060-把二叉树打印成多行
- (C++)剑指offer-60:把二叉树打印成多行(树)
- 剑指offer-将二叉树打印为多行
- 剑指offer61题(把二叉树打印成多行)
- 【剑指Offer】把二叉树打印成多行