leetCode 102.Binary Tree Level Order Traversal (二叉树水平遍历) 解题思路和方法
2015-07-30 17:03
531 查看
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:
思路:水平遍历,可用dfs和bfs两种方法,楼主没有掌握bfs的方法,故本文用DFS实现。
具体代码如下:
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] ]
思路:水平遍历,可用dfs和bfs两种方法,楼主没有掌握bfs的方法,故本文用DFS实现。
具体代码如下:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { List<List<Integer>> list = new ArrayList<List<Integer>>(); public List<List<Integer>> levelOrder(TreeNode root) { dfs(0,root); return list; } /** * 中序遍历,根据深度添加list * @param dep 树的深度 * @param root 根节点 */ private void dfs(int dep,TreeNode root){ if(root == null){ return; } List<Integer> al;//根据情况得到al值 if(list.size() > dep){ al = list.get(dep); }else{ al = new ArrayList<Integer>(); list.add(al); } dfs(dep+1,root.left); al.add(root.val); dfs(dep+1,root.right); } }
相关文章推荐
- Core Image滤镜的组合
- Quality trimming using Trimmomatic
- javascript return false 详解
- A Simple Problem with Integers---poj3468线段树
- KV存储系统
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第53讲:PHP smarty模板配置及变量操作
- RHEL十九(ACL的使用)
- 一切重新开始
- SSDAlloc:用 SSD 扩展内存
- 进程的基本状态及其转换
- SQL Server里Grouping Sets的威力
- Linux性能调优、Linux集群与存储等
- 利用PHP将部分内容用星号替换
- 基于ArcGIS Flex API实现动态标绘(1.1)
- spring中IOC是什么意思 个人觉得解释的非常有意思
- Linux服务器运行环境搭建(二)——Redis数据库安装
- leetCode 101.Symmetric Tree(对称树) 解题思路和方法
- MVC控制器总结
- 【读书笔记】 网页关闭确认框
- Linux服务器运行环境搭建(二)——Redis数据库安装