美文网首页
剑指Offer-60 层次遍历

剑指Offer-60 层次遍历

作者: 北国雪WRG | 来源:发表于2019-01-25 18:57 被阅读9次

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

技巧:使用Null 作为层的分隔符号。

public class Solution {
    ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
        ArrayList<ArrayList<Integer>> lists = new ArrayList<>();
        Queue<TreeNode> queue = new LinkedList<>();
        if(pRoot == null) return lists;
        queue.offer(pRoot);
        queue.offer(null);
        while(queue.peek() != null){
            ArrayList<Integer> list  = new ArrayList<>();
            TreeNode node = queue.poll();
            while(node != null){
                list.add(node.val);
                if(node.left != null) queue.offer(node.left);
                if(node.right != null) queue.offer(node.right);
                node = queue.poll();
            }
            queue.offer(null);
            lists.add(list);
        }
        return lists;
    }
}

相关文章

  • 剑指Offer-60 层次遍历

    从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 技巧:使用Null 作为层的分隔符号。

  • 按之字形顺序打印二叉树

    《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:树的广度遍历(层次遍历)、队列 题目描述: 请实现一...

  • 把二叉树打印成多行

    《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:树的广度遍历(层次遍历)、队列 题目描述: 从上到下...

  • 连续子数组最大和

    二刷: 剑指思路,只需要遍历一遍

  • 根据前序遍历和中序遍历重建二叉树

    此题为剑指offer的第7题 就是根据二叉树的前序和中序遍历的序列来构造二叉树并以层次遍历的形式输出。考察了二叉树...

  • 二叉树的基本算法

    一、二叉树的递归遍历 二、二叉树的层次遍历 二叉树的层次遍历是指二叉树从上到下,从左到右遍历数据。同一层中的节点访...

  • 二叉树遍历

    前序遍历 中序遍历 后序遍历 层次遍历

  • 二叉树的非递归遍历

    先序遍历 利用栈进行树的非递归便利遍历 中序遍历 后序遍历 层次遍历 使用队列进行树的层次遍历(广度优先遍历,Br...

  • 数据结构重学日记(二十二)二叉树的层次遍历

    二叉树的层次遍历也属于非递归遍历,和之前先序、中序、后序遍历的区别在于层次遍历需要借助队列来实现。 层次遍历的操作...

  • 层次遍历

    var layer = function (obj, chart = '/') { let result = [...

网友评论

      本文标题:剑指Offer-60 层次遍历

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