描述
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]
]
示例1
输入:
{1,2}
返回值:
[[1],[2]]
示例2
输入:
{1,2,3,4,#,#,5}
返回值:
[[1],[2,3],[4,5]]
解题思路:
层序遍历:
- 就是从根节点(第一层)开始,依次向下,获取每一层所有结点的值,有二叉树如下:
实现步骤:
- 1.创建队列,存储每一层的结点;
- 2.使用循环从队列中弹出一个结点:
- 3.获取当前结点的key;
- 4.如果当前结点的左子结点不为空,则把左子结点放入到队列中
- 5.如果当前结点的右子结点不为空,则把右子结点放入到队列中
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型ArrayList>
*/
//[[1],[2,3],[4,5]]
public ArrayList> levelOrder (TreeNode root) {
// write code here
ArrayList> res = new ArrayList>();
//根节点为空,直接返回res
服务器托管网 if(ro服务器托管网ot == null)
return res;
if(root !=null){
Queue queue = new LinkedList();
queue.offer(root);
while(!queue.isEmpty()){
int size = queue.size();
ArrayList level = new ArrayList();
while(size-->0){
TreeNode temp = queue.poll();
level.add(temp.val);
if(temp.left!=null)
queue.offer(temp.left);
if(temp.right!=null)
queue.offer(temp.right);
}
res.add(level);
}
}
return res;
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 借力计算机视觉及深度学习,纽卡斯尔大学开发实时、自动化奶牛跛行检测系统
本文首发自 HyperAI超神经微信公众号~ 内容一览:近期,纽卡斯尔大学联合费拉科学有限公司联合开发了一个针对多头奶牛的自动化、实时跛行检测系统。该系统能够按照跛行评分系统将奶牛进行分类,并且准确度高达 94%-100%。目前,该研究成果已发表在《Natur…