题目:给定一棵二叉树,对其进行层次遍历,将遍历结果存入二维链表中。

思路:二叉树的层次遍历关键在于使用Queue

复习:

Queue的定义。LinkedList实现了Queue接口,因此可用LinkedList来初始化一个Queue。

Queue的使用。

  1、offer(),入队,当队列满掉时,返回false。

  2、poll(),返回队列头部元素并删除,当队列为空时,返回null。

  3、peek(),返回队列头部元素不删除,当队列为空时,返回null。

代码:

     public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) {

         ArrayList<ArrayList<Integer>> level = new ArrayList<ArrayList<Integer>>();

         if(root == null) return level; //在面试时,可询问考官,当root== null时,返回空链表,还是null。

         Queue<TreeNode> q = new LinkedList<TreeNode>();
q.offer(root);
q.offer(new TreeNode(Integer.MAX_VALUE)); //作为层与层直接的间隔符 ArrayList<Integer> oneLevel = new ArrayList<Integer>(); while(!q.isEmpty()){
TreeNode node = q.poll(); if(node.val != Integer.MAX_VALUE){ oneLevel.add(node.val);
if(node.left != null) q.offer(node.left);
if(node.right != null) q.offer(node.right); }else{
if(oneLevel.size() == 0) break; //最后一个间隔符 level.add(oneLevel);
oneLevel = new ArrayList<Integer>();
q.offer(new TreeNode(Integer.MAX_VALUE)); }
}
return level;
}

[leetcode]_Binary Tree Level Order Traversal I && II的更多相关文章

  1. LeetCode:Binary Tree Level Order Traversal I II

    LeetCode:Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of ...

  2. [LeetCode] Binary Tree Level Order Traversal II 二叉树层序遍历之二

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...

  3. 【leetcode】Binary Tree Level Order Traversal I & II

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  4. [leetcode]Binary Tree Level Order Traversal II @ Python

    原题地址:http://oj.leetcode.com/problems/binary-tree-level-order-traversal-ii/ 题意: Given a binary tree, ...

  5. [Leetcode] Binary tree level order traversal ii二叉树层次遍历

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...

  6. [LeetCode] Binary Tree Level Order Traversal 二叉树层序遍历

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  7. [LeetCode] N-ary Tree Level Order Traversal N叉树层序遍历

    Given an n-ary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  8. LeetCode: 102_Binary Tree Level Order Traversal | 二叉树自顶向下的层次遍历 | Easy

    题目:Binay Tree Level Order Traversal Given a binary tree, return the level order traversal of its nod ...

  9. LeetCode: Binary Tree Level Order Traversal 解题报告

    Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes ...

随机推荐

  1. cdoj1325卿学姐与基本法

    地址:http://acm.uestc.edu.cn/#/problem/show/1325 题目: 卿学姐与基本法 Time Limit: 2000/1000MS (Java/Others)     ...

  2. 基于Bootstrap的日历控件和日期选择插件

    在线演示 本地下载

  3. CSS气泡提示框 可自定义配置箭头

    在线演示 本地下载

  4. error: 'for' loop initial declarations are only allowed in C99 mode

    error: 'for' loop initial declarations are only allowed in C99 mode   出现错误: error: 'for' loop initia ...

  5. android timed gpio (linux 3.0.0) 受时钟控制的gpio【转】

    本文转载自:https://blog.csdn.net/linxi_hnh/article/details/8043417 1 路径: drivers/staging/android/timed_gp ...

  6. Gentoo系统安装步骤详解

    下载镜像 一般我都是用国内的镜像源,不管是centos,ubuntu还是gentoo在国内的镜像来说肯定比国外快 #下载地址mirrors.163.com/gentoo/#我用的x86的http:// ...

  7. 探测web服务质量方法

  8. 用JAR的方式运行SpringBoot项目

    接 Spring Boot 快速入门(Eclipse) 步骤一:部署方式 Springboot 和 web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢? 通常来说,Sprin ...

  9. java 与大数据学习较好的网站

    C# C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!https://www.cnblogs.com/doforfuture/p/6293926.html ...

  10. 阻止a标签跳转四种方法 兼容各大浏览器(包括IE)

    阻止a标签跳转四种方法 兼容各大浏览器(包括IE) HTML <!--第一种--> <a href="javascript:;">我不会被跳转</a& ...