[Leetcode][JAVA] Binary Tree Level Order Traversal
2015-07-06 04:49
489 查看
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
return its level order traversal as:
Level Order Traverse II 就是反一反。
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] ] 对每一层的节点都用ArrayList<TreeNode> cur保存,每次循环时把cur里每个非空节点值拿出来并保存到ArrayList<Integer> temp中, 并且子节点保存到新的ArrayList<TreeNode>中。最后如果 temp 非空,就加入到结果集中。最后cur 指向新的ArrayList<TreeNode>。
public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> re = new ArrayList<List<Integer>>(); List<TreeNode> lst = new ArrayList<TreeNode>(); lst.add(root); while(lst.size()>0){ List<Integer> temp = new ArrayList<Integer>(); List<TreeNode> childrenlst = new ArrayList<TreeNode>(); for(int i=0;i<lst.size();i++){ TreeNode curNode = lst.get(i); if(curNode!=null){ temp.add(lst.get(i).val); childrenlst.add(curNode.left); childrenlst.add(curNode.right); } } if(temp.size()>0) re.add(temp); lst = childrenlst; } return re; }
Level Order Traverse II 就是反一反。
相关文章推荐
- Java的swing编程(一)
- map和list的用法:HashMap排序(二)
- Java_生活工具箱在线系统发布
- java开源项目
- java开源项目
- java 时间相关的类互相转换
- java 二进制兼容性概述
- JDK源码分析之concurrent包(一) -- Executor架构
- 转:javaweb开发超时设置
- Java注解Annotation详解
- java.lang.reflect.MalformedParameterizedTypeException
- logback + slf4j + jboss + spring mvc
- jar包冲突 java.lang.NoSuchMethodError: antlr.collecti
- SpringFramework4系列之SpringJMS:(一)搭建JMS-注解加XML版
- java -D参数简化加入多个jar【简化设置classpath】
- 2015070508 - EffactiveJava笔记 - 第13条 使类和成员的可访问性最小(2)
- JAVA基础-程序的基本结构、函数与数组
- 如何在java中使用sikuli进行自动化测试
- JAVA基础-面向对象之封装
- Java程序日志三