二叉树的层次遍历,lintcode
2016-12-15 14:57
429 查看
给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)
样例
给一棵二叉树 {3,9,20,#,#,15,7} :
3
/ \
9 20
/ \
15 7
返回他的分层遍历结果:
[
[3],
[9,20],
[15,7]
]
解题思路:用一个队列实现,队列保存每层的节点,以此遍历每层。
一刷ac
样例
给一棵二叉树 {3,9,20,#,#,15,7} :
3
/ \
9 20
/ \
15 7
返回他的分层遍历结果:
[
[3],
[9,20],
[15,7]
]
解题思路:用一个队列实现,队列保存每层的节点,以此遍历每层。
一刷ac
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: The root of binary tree. * @return: Level order a list of lists of integer */ public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) { ArrayList<ArrayList<Integer>> rst = new ArrayList<ArrayList<Integer>>(); if(root == null) return rst; LinkedList<TreeNode> list = new LinkedList<TreeNode>(); list.offer(root); while(!list.isEmpty()){ ArrayList<Integer> res = new ArrayList<Integer>(); int size = list.size(); for(int i = 0; i < size; i++){ TreeNode node = list.poll(); if(node.left != null) list.offer(node.left); if(node.right != null) list.offer(node.right); res.add(node.val); } rst.add(res); } return rst; } }
相关文章推荐
- LintCode算法题解
- LintCode Majority Number iii
- LintCode-最大数
- lintCode Intersection of Two Arrays II
- Intersection of Two Arrays
- Subtree
- LintCode
- LintCode --number-of-airplanes-in-the-sky(数飞机)
- LintCode --invert-binary-tree(翻转二叉树)
- LintCode --find-the-missing-number(寻找缺失的数)
- LintCode--best-time-to-buy-and-sell-stock(买卖股票的最佳时机)
- LintCode--best-time-to-buy-and-sell-stock-ii(买卖股票的最佳时机 II)
- lintcode之不同子序列数 + 序列II
- lintcode之快速幂
- lintcode删除排序数组中的重复数字 II
- lintcode之数组划分
- leetcode之三数之和 II
- lintcode之 数组剔除元素后的乘积
- lintcode之 合并排序数组 II
- lintcode 之子数组之和