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

思路:二叉树的层次遍历关键在于使用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. JAVA 对象序列化——Serializable(转)

    文章出自:http://www.cnblogs.com/chenfei0801/archive/2013/04/05/3001149.html Java的对象序列化是指将那些实现了Serializab ...

  2. Qios RibbonForm QRibbonCaption添加qRibbonApplicationButton无法最大化问题

    winform 用了Qios DevSuite系列的控件. RibbonForm中QRibbonCaption添加qRibbonApplicationButton之后无法最大化. 修改qRibbonA ...

  3. 详细解读ARM寄存器之CPSR【转】

    本文转载自:https://blog.csdn.net/david_luyang/article/details/6276533 详细解读ARM寄存器之CPSR 整理人:卢阳 QQ:820927872 ...

  4. SMM+maven下的log4j配置打印sql

    1加入依赖包 <!--LOG4日志 start --> <dependency> <groupId>org.slf4j</groupId> <ar ...

  5. tomcat官方下载连接——安装版&绿色版

    Tomcat绿色版Windows64位9.0.10 http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat- ...

  6. [转] Android Fragment 你应该知道的一切

     转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42628537,本文出自:[张鸿洋的博客] 很久以前写过两篇Fragment的介 ...

  7. struts2取值

    http://www.cnblogs.com/yangy608/archive/2010/11/23/1885256.html struts2取值 1.标签取值方式一 通过<s:property ...

  8. JSP web.xml <jsp-config>标签使用详解

    <jsp-config> 包括 <taglib> 和 <jsp-property-group> 两个子元素.其中<taglib> 元素在JSP 1.2  ...

  9. JSON和GSON的使用

    JSONObject 处理问题 相关博客参考:https://www.cnblogs.com/free-dom/p/5801866.html json-lib 和google gson 的使用 Tor ...

  10. Ubuntu中idea配置guns

    idea配置guns Tips:建议JDK1.8的包 sudo update-alternatives --config java 设置默认的java # java -version java ver ...