博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode][Java] Binary Tree Level Order Traversal
阅读量:6272 次
发布时间:2019-06-22

本文共 1217 字,大约阅读时间需要 4 分钟。

题目:

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]]

题意:

给定一棵二叉树,依照层顺序遍历二叉树全部的节点(即 从左向右 一层层地)

比方,给定二叉树{3,9,20,#,#,15,7},

3   / \  9  20    /  \   15   7
返回它的层遍历为:

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

算法分析:

该题是对二叉树进行层次优先遍历,层次遍历主要採用队列的形式进行存储,通过将每一个节点的左孩子和右孩子放入队列中,然后每次从队列中取出元素就可以。比較好理解,直接上代码了。

AC代码:

public class Solution {     private static TreeNode root;	 public static ArrayList
> levelOrder(TreeNode root) { ArrayList
> res = new ArrayList
>(); if (root == null) { return res; } ArrayList
tmp = new ArrayList
(); Queue
queue = new LinkedList
(); queue.offer(root); int num; boolean reverse = false; while (!queue.isEmpty()) { num = queue.size(); //每次通过这个确定终于的出队数目 tmp.clear(); for (int i = 0; i < num; i++) //队列中出1个父。进两个子;出2个父,进4个子;出4个父。进8个子 { TreeNode node = queue.poll(); tmp.add(node.val); if (node.left != null) queue.offer(node.left); if (node.right != null) queue.offer(node.right); } res.add(new ArrayList
(tmp)); } return res; } }

转载地址:http://julpa.baihongyu.com/

你可能感兴趣的文章
百世汇通快递地区选择插件,单独剥离
查看>>
Linux系统调用---同步IO: sync、fsync与fdatasync【转】
查看>>
【MyBatis学习06】输入映射和输出映射
查看>>
[LeetCode] Decode String 解码字符串
查看>>
数字逻辑的一些基本运算和概念
查看>>
ant重新编译打包hadoop-core-1.2.1.jar时遇到的错
查看>>
【★★★★★】提高PHP代码质量的36个技巧
查看>>
3 weekend110的配置hadoop(格式化) + 一些问题解决 + 未免密码配置
查看>>
JavaScript Creating 对象
查看>>
Java compiler level does not match the version of the installed Java project facet.(转)
查看>>
WPF MediaElement.Position属性
查看>>
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
spring mysql多数据源配置
查看>>
[React] Override webpack config for create-react-app without ejection
查看>>
检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。...
查看>>
测试java的父子类化
查看>>
HDOJ 1008
查看>>
安装thrift出现的一些问题
查看>>
makefile编写---单个子目录编译模板
查看>>
Oracle DB_LINK如何使用
查看>>