分析,与题目107非常像,最大的不同是输出结果是自顶向下的,不需要新设计list变量,反向结果,直接输出即可

/**

* Definition for a binary tree node.

* public class TreeNode {

*     int val;

*     TreeNode left;

*     TreeNode right;

*     TreeNode(int x) { val = x; }

* }

*/

public class Solution {

int count(TreeNode x)

{

if(x==null)

return 0;

else

{

int lc=count(x.left);

int rc=count(x.right);

return lc+rc+1;

}

}

int height(TreeNode x)

{

if(x==null)

return 0;

else

{

int lh=height(x.left);

int rh=height(x.right);

if(lh>rh)

return lh+1;

else

return rh+1;

}

}

TreeNode[] queue;

int start=0;

int end=0;

int size=0;

void enqueue(TreeNode x)

{

queue[start]=x;

//if(isEmpty())

//    end=(end+1)%size;

start=(start+1)%size;

}

TreeNode outqueue()

{

//start=(start-1)%size;

end=(end+1)%size;

return queue[(end-1)%size];

}

boolean isEmpty()

{

if(end==start)

return true;

else

return false;

}

public List<List<Integer>> levelOrder(TreeNode root) {

List<List<Integer>> listl=new ArrayList<List<Integer>>();

List<List<Integer>> listend=new ArrayList<List<Integer>>();

size=(count(root)+1)*10;

int H=height(root);

//List<Integer>[] v;

//for(int i=0;i<H;i++)

//    v[i]=new ArrayList<Integer>();

queue=new TreeNode[size];

for(int i=0;i<size;i++)

queue[i]=new TreeNode(0);

TreeNode y=null;

enqueue(root);

enqueue(y);

int c=0;

while(!isEmpty())

{

boolean t=false;

List<Integer> l=new ArrayList<Integer>();

TreeNode z=outqueue();

while(z!=null)

{

l.add(z.val);

if(z.left!=null)

{

enqueue(z.left);

t=true;

}

if(z.right!=null)

{

enqueue(z.right);

t=true;

}

z=outqueue();

}

if(!l.isEmpty())

listl.add(l);

if(t)

{

enqueue(y);

c++;

}

}

for(int j=listl.size()-1;j>=0;j--)

listend.add(listl.get(j));

return listl;

}

}

转载于:https://blog.51cto.com/7061299/1642111

Leetcode#102Binary Tree Level Order Traversal相关推荐

  1. [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)

    目录: 1.Binary Tree Level Order Traversal - 二叉树层次遍历 BFS 2.Binary Tree Level Order Traversal II - 二叉树层次 ...

  2. LeetCode Binary Tree Level Order Traversal

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

  3. LeetCode N-ary Tree Level Order Traversal(bfs)

    问题:给出一个n叉树,输出层次遍历 思路:bfs 具体代码参考: https://github.com/wuli2496/OJ/tree/master/LeetCode/N-ary%20Tree%20 ...

  4. LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy

    本题和上题一样同属于层次遍历,不同的是本题从底层往上遍历,如下: 代码如下: 1 struct TreeNode { 2 int val; 3 TreeNode* left; 4 TreeNode* ...

  5. [leetcode]Binary Tree Level Order Traversal II

    //层次遍历 逆序 public class Solution { public List<List<Integer>> levelOrderBottom(TreeNode r ...

  6. LeetCode: 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

  7. LeetCode 107. Binary Tree Level Order Traversal II

    LeetCode 107. Binary Tree Level Order Traversal II Solution1:我的答案 比102那道题多了一行代码... /*** Definition f ...

  8. 429. N-ary Tree Level Order Traversal - LeetCode

    Question 429. N-ary Tree Level Order Traversal Solution 题目大意: N叉树,返回每层的值,从上到下,从左到右 思路: 利用队列遍历这个N叉树 J ...

  9. 429. N-ary Tree Level Order Traversal**

    429. N-ary Tree Level Order Traversal** https://leetcode.com/problems/n-ary-tree-level-order-travers ...

最新文章

  1. mysql如何实现读提交锁_MySQL学习笔记(二)—MySQL事务及锁详解
  2. 安装zabbix4.0(公司内网)
  3. ACM错误提示/错误原因
  4. boost::convert模块实现默认转换器的测试程序
  5. redis版本_全球首发|阿里云正式推出云数据库Redis6.0版本
  6. SSH集成之导入导出代码示例-页面部分(1)
  7. 论文|Item2vec中值得品味的8个经典tricks
  8. matlab练习程序(倾斜校正,透视变换)
  9. 第四章_思科ASDM网管系统搭建(java环境,jdk环境)
  10. 【学习中】王者荣耀游戏拆解分析(1)
  11. python提取句子_关于python:从句子中提取介词短语
  12. 树莓派B+安装简单版魔镜MagicMirror
  13. 机器学习系列(13)_PCA对图像数据集的降维_02
  14. 纪念小企鹅──fcitx
  15. 我的2018---艰难的一年
  16. 编码规范汇总【持续更新】
  17. 20 WebGL使用纹理贴图
  18. 标品和非标品如何选品,选品的重要性,店铺怎样布局
  19. c语言用数组存放100以内素数,c语言求素数(c语言输出100以内素数)
  20. jQuery_01入门

热门文章

  1. 整理收藏-mysqldump导出数据库
  2. UITableView自定义Section
  3. 在线正则表达式可视化测试工具
  4. 对事件循环的一点理解
  5. Educational Codeforces Round 24
  6. 稀疏矩阵的加,减,乘,转置
  7. Java使用OpenCV3.2实现视频读取与播放
  8. js与jquery对象的互转
  9. 《网络攻防实践》 课程教学
  10. redis+mybatis+spring