美文网首页
二叉树层级遍历

二叉树层级遍历

作者: 笑哈哈的精彩 | 来源:发表于2018-04-28 17:40 被阅读53次

LintCode 二叉树层级遍历

解题思路:队列(先进先出)

将每层的节点插入到队列中, 然后遍历队列,再将下一层级的节点插入到队列中, 直到最后

如图中二叉树

image

先将根节点放入队列中如下图

image

然后遍历队列,循环取出队头元素,再将队元元素的左右节点放入到队列中,如下图

image

如此循环直到二叉树最深层级

代码如下:

public List<List<Integer>> levelOrder(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        
        List<List<Integer>> tree = new ArrayList<List<Integer>>();
        if(root == null)
            return tree;
        queue.offer(root);
        while(!queue.isEmpty()){
            ArrayList<Integer> list = new ArrayList<Integer>();
            int size = queue.size();
            for(int i=0;i<size;i++){
                TreeNode head = queue.poll();
                list.add(head.val);
                if(head.left!=null){
                    queue.offer(head.left);
                }
                if(head.right!=null){
                    queue.offer(head.right);
                }
            }
            tree.add(list);
        }
        return tree;
    }

相关文章

  • 算法小结

    算法小结 1 二叉树 定义树节点形式 1.1 层序遍历 语义解析:层序遍历指的是二叉树根据层级进行遍历。 利用队列...

  • 2019-08-04-二叉树遍历算法

    1,前序遍历 2,中序遍历 3,后序遍历 4,队列层级遍历 5,计算二叉树节点数 一,首先定义一个二叉树的节点 二...

  • 大话数据结构—二叉树(十)

    1.二叉树3种递归遍历 2.层级遍历 引用原文:https://www.cnblogs.com/llguanli/...

  • 二叉树续

    199. 二叉树的右视图 层级遍历取每层最后一个

  • 面试总结算法

    二叉树镜像 最长回文子串 二叉树层级遍历 整数反转 二叉树先序遍历 二分法 连续子数组的最大和 动态规划 sync...

  • 二叉树输出第K层节点元素

    这个问题我的第一反应是应该跟 二叉树的层级遍历 有关。 定义节点 回顾一下层级遍历 使用了一个 队列,通过入列和...

  • (补)第四周算法备忘

    深度优先, DFS 前中后序遍历二叉树 典型题目 岛屿问题 八皇后问题 广度优先, BFS 层级遍历n叉树 典型题...

  • 二叉树层级遍历

    LintCode 二叉树层级遍历 解题思路:队列(先进先出) 将每层的节点插入到队列中, 然后遍历队列,再将下一层...

  • 二叉树的最大/最小深度

    给定如下二叉树, 分别返回其最大深度4, 最小深度2。 求最大深度 按照广度遍历 跟层级遍历类似,最后返回总数组的...

  • Binary Tree Level Order Traversa

    Easy 给定二叉树,返回从下至上层级遍历的节点值(从左往右,从叶到根) Example:二叉树 [3,9,20,...

网友评论

      本文标题:二叉树层级遍历

      本文链接:https://www.haomeiwen.com/subject/grxnlftx.html