`
blue2048
  • 浏览: 185832 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[leetcode]Binary Tree Level Order Traversal - java 树层遍历技巧

阅读更多

广度遍历的基础上,再使用是个集合存储下一层节点,在队列进元素的时机上做出一些改变,就能达到层级遍历树的效果

 

/**

 * Definition for binary tree

 * 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>> result = new ArrayList<List<Integer>>();

        if(root == null){

            return result;

        }

        List<Integer> first = new ArrayList<Integer>();

        first.add(root.val);

        result.add(first);



        LinkedList<TreeNode> queue = new LinkedList<TreeNode>();

        LinkedList<TreeNode> childrenQueue = new LinkedList<TreeNode>();

        queue.add(root);

        while (!queue.isEmpty()) {

            TreeNode node = queue.remove();

            if(node.left!=null){

                childrenQueue.add(node.left);

            }

            if(node.right!=null){

                childrenQueue.add(node.right);

            }

            if(queue.isEmpty() && !childrenQueue.isEmpty()){

                List<Integer> childrenResult = new ArrayList<Integer>(childrenQueue.size());

                for(TreeNode child : childrenQueue){

                    queue.add(child);

                    childrenResult.add(child.val);

                }

                result.add(childrenResult);

                childrenQueue.clear();

            }

        }

        return result;

    }

}

 

分享到:
评论

相关推荐

    python-leetcode题解之107-Binary-Tree-Level-Order-Traversal-II

    2. 在LeetCode平台上,问题编号107的题目是“Binary Tree Level Order Traversal II”,它要求对给定的二叉树进行反向层级遍历,即从最后一层到第一层的顺序输出节点值。 3. 反向层级遍历算法可以通过先进行正常的...

    js-leetcode题解之107-binary-tree-level-order-traversal-ii.js

    通过LeetCode题解的这个文件“js-leetcode题解之107-binary-tree-level-order-traversal-ii.js”,我们可以学习如何使用JavaScript编写二叉树层序遍历的变种,以及如何处理和操作队列数据结构。

    python-leetcode题解之102-Binary-Tree-Level-Order-Traversal

    由于LeetCode平台提供了一个公共的编程问题库供开发者练习和提升编程能力,因此我们选择了其中的题目编号102,即"Binary Tree Level Order Traversal"(二叉树的层序遍历)。为了解决这个问题,我们通常需要掌握队列...

    python-leetcode题解之103-Binary-Tree-Zigzag-Level-Order-Traversal

    今天我们将详细讨论Python实现LeetCode第103题——二叉树的锯齿形层序遍历(Binary Tree Zigzag Level Order Traversal)的解决方案。 二叉树的锯齿形层序遍历要求我们以不同于传统层序遍历的方式输出树节点值,即...

    js-leetcode题解之102-binary-tree-level-order-traversal.js

    function levelOrder(root) { if (!root) return []; let result = []; let queue = [root]; while (queue.length &gt; 0) { let levelSize = queue.length; let level = []; for (let i = 0; i &lt; levelSize;...

    js-leetcode题解之103-binary-tree-zigzag-level-order-traversal.js

    在本篇文章中,我们将深入探讨JavaScript编程语言用于解决LeetCode上的103号题目,即“二叉树的锯齿形层序遍历”。该题要求使用JavaScript编写一个函数,实现对给定二叉树进行层序遍历,但要求按照“Z”形的顺序输出...

    leetcode-tree

    102-Binary Tree Level Order Traversal199-Binary Tree Right Side View:层次遍历的一个运用树的构造给出前中后序的序列中的两个,构造一棵树。递归。前序 parent left-child right-child中序 left-child parent ...

    四平方和定理leetcode-leetcode-practice:个人LeetCode练习代码

    102.binary-tree-level-order-traversal (二叉树的层序遍历) 104.maximum-depth-of-binary-tree (二叉树的最大深度) 105.construct-binary-tree-from-preorder-and-inorder-traversal (从前序与中序遍历序列构造...

    leetcode-[removed]使用Java的Leetcode解决方案

    102 Binary Tree Level Order Traversal.js(二叉树级订单Traversal.js) 103 Binary Tree Zigzag Level Order Traversal.js(二叉树之字形级别顺序Traversal.js) 104 Binary Tree.js的最大深度 105从Preorder和...

    Leetcode题目+解析+思路+答案.pdf

    - **Binary Tree Level Order Traversal**:二叉树的层次遍历。 - **Symmetric Tree**:判断一个二叉树是否是对称的。 - **Same Tree**:判断两棵二叉树是否相同。 - **Balanced Binary Tree**:判断一个二叉树...

    leetcode中文版-leetcode:leetcode

    leetcode中文版车鸟 一组用python编写的算法。 种类 冒泡排序 插入排序 归并排序 桶排序 计数排序 基数排序 ...树 ...二叉搜索树结构 遍历二叉树 ...balance_binary_tree ...binary_tree_level_order_traversal_I

    leetcode中文版-LeetCodeAnimation:力码动画

    leetcode中文版 我会尽力将LeetCode上所有的题目都用动画的形式演示出来,计划用3到4年时间去完成它,期待与你见证这一天! 文章最新首发于微信公众号 五分钟学算法 ,您可以关注获取最新的文章。 Problems ID ...

    leetcode刷题列表

    例如,树的层级遍历(Levelorder Traversal)、判断树的对称性(Symmetric Tree)、找到二叉搜索树中距离某个值最近的节点(Closest Binary Search Tree Value)等。这些题目通常要求编写者熟悉树的结构和遍历方法,...

    leetcode下载-LeetCodeAnimation:力码动画

    leetcode下载 我会尽力将LeetCode上所有的题目都用动画的形式演示出来,计划用3到4年时间去完成它,期待与你见证这一天! 文章最新首发于微信公众号 五分钟学算法 ,您可以关注获取最新的文章。 Problems ID Problem...

    LeetCode-Hot-100

    5. **递归与函数**:递归是解决许多算法问题的有效手段,如"Binary Tree Level Order Traversal"使用层次遍历(广度优先搜索)求解。而"Factorial Trailing Zeroes"则通过递归计算阶乘尾部零的个数。 6. **复杂度...

    LeetCode leetcode部分题解答代码实现

    * Binary Tree Level Order Traversal:给定一个二叉树,返回树的层次遍历结果。这个题目需要使用队列的思想,将树分解成更小的层次,并遍历每个层次。 * Symmetric Tree:给定一个二叉树,判断是否为对称树。这个...

    leetcode中文版-cabbird:一组用python编写的算法

    leetcode中文版车鸟 一组用python编写的算法。 种类 冒泡排序 插入排序 归并排序 桶排序 计数排序 基数排序 ...树 ...二叉搜索树结构 遍历二叉树 ...balance_binary_tree ...binary_tree_level_order_traversal_I

    手稿_V1.046

    在给定的代码中,我们讨论的是如何解决LeetCode上的一个问题——“二叉树的层次遍历II”(Binary Tree Level Order Traversal II),这个问题要求我们实现一个C++函数`levelOrderBottom`,该函数接收一个二叉树的根...

    LeetCode练习答案

    - **二叉树的层序遍历(Binary Tree Level Order Traversal)**: 给定一棵二叉树,返回其层序遍历的结果。 - **对称树(Symmetric Tree)**: 判断一个二叉树是否是对称的。 - **相同的树(Same Tree)**: 判断两个二叉树...

Global site tag (gtag.js) - Google Analytics