一. 问题描述

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

例如:

给定二叉树 [3,9,20,null,null,15,7],

3

/ \

9  20

/  \

15   7

返回其自底向上的层次遍历为:

[

[15,7],

[9,20],

[3]

]

二. 解题思路

本题思路:采用层序遍历和递归的方法进行求解。

步骤一:构建递归函数(全局变量list表存储结果数据,局部表data存储当前一层所有节点)

步骤二:对data表进行遍历,将其子树存储在newdata表中,并进行递归(list,newdata)。

步骤三:当在最底层时,将newdata节点数存储在list表中,并返回上一层接着存储,直到结束。

步骤四:返回list表。

三. 执行结果

执行用时 :1 ms, 在所有 java 提交中击败了100.00%的用户

内存消耗 :36.4 MB, 在所有 java 提交中击败了41.70%的用户

四. Java代码

class Solution {
public List<List<Integer>> levelOrderBottom(TreeNode root) {
List<List<Integer>> list=new ArrayList<List<Integer>>();
if(root==null) {
return list;
}else {
List<TreeNode> data=new ArrayList<TreeNode>();
data.add(root);
getTree(list,data);
return list;
}
}
public void getTree(List<List<Integer>> list,List<TreeNode> data) {
if(data.size()==0) {
return ;
} List<TreeNode> newdata=new ArrayList<TreeNode>();
List<Integer> temp=new ArrayList<Integer>();
for(int i=0;i<data.size();i++) {
if(data.get(i).left!=null) {
newdata.add(data.get(i).left);
}
if(data.get(i).right!=null) {
newdata.add(data.get(i).right);
}
temp.add(data.get(i).val);
}
getTree(list, newdata); list.add(temp);
} }

最新文章

  1. 使用 SSH上传安装tomcat
  2. WPF 将DLL嵌入EXE文件(安装包)
  3. 如何获取Iframe的页面控件的值
  4. C/C++ 关于大小端模式
  5. 浏览器检测是否安装flash插件,若没有安装,则弹出安装提示
  6. 4月13日 php
  7. Apache2.4.x与Apache2.2.x的一些区别
  8. C# 对象池的实现
  9. PHP修改记录
  10. [Tyvj模拟赛]运
  11. [国嵌笔记][013][Mini2440开发板介绍]
  12. 【mongodb系统学习之十】mongodb查询(三)
  13. JSON字符串反序列化成对象_部分属性值反序列化失败
  14. JavaScript笔记1———js的一些常识
  15. Solidity-让合约地址 接受ETH的转账充值的 三种方式
  16. 服务器上部署Struts2的web项目报struts-default.xml:131:154的解决方法
  17. C++ 虚函数的两个例子
  18. K8S 部署 ingress-nginx (三) 启用 https
  19. for循环的简介及break和continue的区别
  20. Java笔记(七)HashMap和HashSet

热门文章

  1. opencv根据摄像头名称获取索引值
  2. APP 和小程序中通过日期格式获取时间戳的一个bug
  3. Redis 常用命令学四:列表类型命令
  4. 版本管理——Git和SVN的介绍及其优缺点
  5. spring cloud中代理服务器zuul的使用
  6. Python基础 第5章 条件、循环及其他语句(2)
  7. 工欲善其事必先利其器之Vagrant + VirtualBox
  8. 客户端相关知识学习(十一)之Android H5交互Webview实现localStorage数据存储
  9. SQL查询月、天、周、年(MySql的实例对比)
  10. sql 添加变量