给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶节点所在层到根节点所在的层,逐层从左向右遍历)
例如:
给定二叉树 [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
返回其自自底向上的层次遍历为:
[
  [15,7],
  [9,20],
  [3]
]
详见:https://leetcode.com/problems/binary-tree-level-order-traversal-ii/description/

Java实现:

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> levelOrderBottom(TreeNode root) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
if(root == null) {
return res;
}
LinkedList<TreeNode> que= new LinkedList<TreeNode>();
que.add(root);
int node=1;
ArrayList<Integer> out = new ArrayList<Integer>();
while(!que.isEmpty()){
root = que.poll();
--node;
out.add(root.val);
if(root.left != null){
que.add(root.left);
}
if(root.right != null){
que.add(root.right);
}
if(node == 0){
node=que.size();
res.add(0,out);
out = new ArrayList<Integer>();
}
}
return res;
}
}

最新文章

  1. python学习之day1-基础知识
  2. flex自适应小例子
  3. redis sentinel 集群配置-主从切换
  4. C#元组示例详解
  5. javascript 中break、 continue、函数不能重载
  6. 自己动手写客户端UI库——创建第一个控件
  7. 顶 企业站常用css横向导航菜单
  8. Ubuntu忘记管理员密码
  9. jQuery EasyUI API 中文文档 - 菜单按钮(menubutton)
  10. [置顶] EasyMock构建单元测试
  11. mysql子查询慢的问题
  12. erlang 常用的计算长度函数
  13. 修长城 (区间DP)
  14. elasticsearch视频34季
  15. python 识别图片上的数字
  16. Python图形用户界面
  17. Java06-java基础语法(五)数组
  18. 并发工具类(五) Phaser类
  19. Keras GlobalAveragePooling2D 示例代码
  20. Python爬虫教程-20-xml 简介

热门文章

  1. [转]FPGA实践——基于ROM访问的直接波形合成
  2. MSP430G2553需要注意的一些参数
  3. Java线程池技术以及实现
  4. Java中锁的内存语义
  5. H264视频通过RTMP直播
  6. poj分类解题报告索引
  7. SDOI2017 Round1 Day2 题解
  8. SIP协议&amp;开源SIP服务器搭建和客户端安装
  9. VMware桥接模式选择宿主机物理网卡
  10. Eclipse用Runnable JAR file方式打jar包,并用该jar包进行二次开发