美文网首页
面试题32_II_把二叉树打印成多行

面试题32_II_把二叉树打印成多行

作者: shenghaishxt | 来源:发表于2020-02-13 21:35 被阅读0次

题目描述

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

题解

大体框架与层次遍历相同,只是为了记录每层的节点数目,设置一个变量size,用于对当前层的节点进行遍历。

ArrayList<ArrayList<Integer>> Print(TreeNode root) {
    ArrayList<ArrayList<Integer>> res = new ArrayList<>();
    Queue<TreeNode> queue = new LinkedList<>();
    queue.offer(root);
    if (root == null)
        return res;

    while (!queue.isEmpty()) {
        int size = queue.size();
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < size; i++) {
            TreeNode temp = queue.poll();
            list.add(temp.val);
            if (temp.left != null)
                queue.offer(temp.left);
            if (temp.right != null)
                queue.offer(temp.right);
        }
        res.add(list);
    }
    return res;
}

相关文章

  • 剑指offer | 把二叉树打印成多行

    把二叉树打印成多行 从上到下按层打印成多行 分析:使用队列

  • 面试题32_II_把二叉树打印成多行

    题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 题解 大体框架与层次遍历相同,只是为了...

  • 数据结构算法(八) 之 树的 2 道面试题 60 & 6

    剑指 Offer 面试题 60(Java 版):把二叉树打印成多行 题目:从上到下按层打印二叉树,同一层的结点按从...

  • [剑指offer]刷题笔记

    按之字顺序打印二叉树 把二叉树打印成多行 按之字顺序打印二叉树【树】【常考!!!】 题目描述:请实现一个函数按照之...

  • 剑指第三周

    对称的二叉树 其实就是要遍历嘛 按之字形顺序打印二叉树 同样是简单的层次遍历 把二叉树打印成多行 这个更简单了 栈...

  • 把二叉树打印成多行

    题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 这道题目与“从上往下打印二叉树”很相似...

  • 把二叉树打印成多行

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

  • 把二叉树打印成多行

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

  • 把二叉树打印成多行

    从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 层次遍历即可可设置两个变量cur和next,分别...

  • 把二叉树打印成多行

    题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 问题分析 利用一个queue队列存放同...

网友评论

      本文标题:面试题32_II_把二叉树打印成多行

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