Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

For example:
Given binary tree {3,9,20,#,#,15,7},

    3
/ \
9 20
/ \
15 7

return its level order traversal as:

[
[3],
[9,20],
[15,7]
]

confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

思路:

重点在于每层元素个数不定,如何标记一层的结束,往堆栈里push很多NULL来表示空位这种方案,会造成Memory Limit Exceeded。

可以采取记下每层的NULL数量,下层翻倍这种方式计数,满额push标记NULL作为一层的结束

代码:

 vector<vector<int> > levelOrder(TreeNode *root) {
vector<vector<int> > orders;
if(root == NULL)
return orders; vector<int> vtmp;
queue<TreeNode*> tque;
tque.push(root);
tque.push(NULL); int size = ;
int count = ;
int zero = ;//该层的NULL数
while(!tque.empty()){
TreeNode * tmp = tque.front();//$$$$
tque.pop();//void pop() if(tmp == NULL){//NULL标识一层的结束
if(!vtmp.empty())//最后一行可能不满
orders.push_back(vtmp);
vtmp.clear();
continue;
}
vtmp.push_back(tmp->val);
if(tmp->left != NULL){
tque.push(tmp->left);
count++;
}
else
zero++;
if(tmp->right != NULL){
tque.push(tmp->right);
count++;
}
else
zero++; if(count + zero == size){
tque.push(NULL);
count = ;
size *= ;
zero = zero * ;
}
}
return orders;
}

最新文章

  1. Linux服务器安全登录设置记录
  2. 移动端web开发技巧
  3. java中Object.equals()简单用法
  4. windows 2003服务器网络异常流量的处理办法
  5. Segment Tree Build I &amp; II
  6. 安装DirectX SDK (June 2010) 失败(Error Code S1023)(转)
  7. m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法
  8. sqlserver中的rowversion
  9. ASP.NET MVC应用程序把文字写在图片上
  10. 淘淘商城_day06_课堂笔记
  11. bzoj1798 [Ahoi2009]维护序列
  12. 数据库面试技巧,通过JDBC展示自己专业性,摘自java web轻量级开发面试教程
  13. datatables里面的search怎么去掉?
  14. 初识gauge自动化测试框架(二)
  15. KMeams算法应用:图片压缩与贝叶斯公式理解
  16. 深度优先遍历(DFS)(转)
  17. 多线程-interrupt(),isInterrupted(),interrupted()(转)
  18. 使用Selenium和openCV对HTML5 canvas游戏进行自动化功能测试(一)
  19. MySQL单行注释和多行释
  20. UPDATE语句中SET部分列赋值的先后顺序有影响么?

热门文章

  1. JDE报表开发笔记(Client端导出Excel乱码)
  2. cisco LAN
  3. C#拉姆达(=&gt;)表达式
  4. PostgreSQL数据库系统优点
  5. The Python web services developer: XML-RPC for Python
  6. InLineHookSSDT
  7. No suitable driver found for jdbc:mysql://localhost/dbname
  8. flash背景透明兼容ie火狐
  9. const的全面理解
  10. 用时间生成用户Id