Binary Tree Level Order Traversal I和II 层次遍历二叉树
来源:互联网 发布:妈妈知道软件下载 编辑:程序博客网 时间:2024/06/06 01:57
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,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
层次遍历二叉树,从左到右,从上到下
思路:利用两个队列分别保存当前这一层的节点和下一层的节点。当遍历某层节点时,插入下一层要遍历的节点
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { //存放结果 List<List<Integer>> res = new ArrayList<List<Integer>>(); if (root == null) {return res;} //记录当前这一层的所有节点 LinkedList<TreeNode> currentLevel = new LinkedList<TreeNode>(); currentLevel.add(root); while (currentLevel.size() > 0) { //存储每层节点的值 List<Integer> currList = new ArrayList<Integer>();//存储下一层所有的节点LinkedList<TreeNode> nextLevel = new LinkedList<TreeNode>();while (currentLevel.size() > 0) {TreeNode node = currentLevel.poll();//如果有左右节点,那么加入到下一层队列中if (node.left != null) {nextLevel.add(node.left);}if (node.right != null) {nextLevel.add(node.right);}currList.add(node.val);}res.add(currList);currentLevel = nextLevel; } return res; }}
第二个问题是:从底层向上遍历。
再把结果添加到结果集时,把上面的res.add(currList);改为res.add(0,currList);即每次都从下标为0的位置开始插入。
0 0
- Binary Tree Level Order Traversal I和II 层次遍历二叉树
- leetCode解题报告之Binary Tree Level Order Traversal II,I(二叉树层次遍历)
- 70.Binary Tree Level Order Traversal II-二叉树的层次遍历 II(中等题)
- Binary Tree Level Order Traversal II(层次遍历二叉树II)
- [Lintcode]Binary Tree Level Order Traversal II 二叉树的层次遍历 II
- leetcode---binary-tree-level-order-traversal-ii---树层次遍历
- 【二叉树层次遍历】Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal II 二叉树层次遍历(广搜,queue)(重重)
- LeetCode OJ 之 Binary Tree Level Order Traversal II (二叉树的层次遍历-二)
- 107.LeetCode Binary Tree Level Order Traversal II(easy)[二叉树层次遍历 广度搜索 队列]
- Leetcode 107. Binary Tree Level Order Traversal II 二叉树层次遍历2 解题报告
- 107. Binary Tree Level Order Traversal II (二叉树由底向上层次遍历)
- Leetcode#107. Binary Tree Level Order Traversal II (queue二叉树层次遍历)
- leetcode_107. Binary Tree Level Order Traversal II 二叉树层次遍历,利用python的list特性实现队列功能
- [leetcode-二叉树层次遍历并统计每层节点数]--107. Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal I & II
- Binary Tree Level Order Traversal II I
- Binary Tree Level Order Traversal I & II
- Java简易多用户聊天程序项目经历
- qsort sort
- CentOS上安装psycopg2
- JavaScript设计模式——构造函数模式
- 一站式解决 使用andriodstudio 部署andiod项目
- Binary Tree Level Order Traversal I和II 层次遍历二叉树
- yii2.0 数据分页显示
- eclipse导入项目后,上面却有个小红叉的原因(一)
- 工作队列的使用
- 关于css定位的一些理解
- oracle模式结构外模式、模式和内模式
- POJ1061-青蛙的约会
- CSS3画各种常见的图形
- Android Material Design 简单控件