美文网首页
JZ-060-把二叉树打印成多行

JZ-060-把二叉树打印成多行

作者: 醉舞经阁半卷书 | 来源:发表于2022-01-18 00:03 被阅读0次

把二叉树打印成多行

题目描述

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

题目链接: 把二叉树打印成多行

代码

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;

/**
 * 标题:把二叉树打印成多行
 * 题目描述
 * 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
 * 题目链接:
 * https://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288?tpId=13&&tqId=11213&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
 */
public class Jz60 {

    /**
    * 递归
    **/
    ArrayList<ArrayList<Integer>> print(TreeNode pRoot) {
        Queue<TreeNode> treeNodes = new LinkedList<TreeNode>();
        ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
        treeNodes.add(pRoot);
        while (!treeNodes.isEmpty()) {
            Queue<TreeNode> curNodes = new LinkedList<TreeNode>();
            curNodes.addAll(treeNodes);
            while (!treeNodes.isEmpty()) {
                treeNodes.poll();
            }
            ArrayList<Integer> curList = new ArrayList<Integer>();
            while (!curNodes.isEmpty()) {
                TreeNode t = curNodes.poll();
                if (t == null) {
                    continue;
                }
                curList.add(t.val);
                treeNodes.add(t.left);
                treeNodes.add(t.right);
            }
            if (!curList.isEmpty()) {
                result.add(curList);
            }
        }
        return result;
    }

    public static void main(String[] args) {
    
    }
}

【每日寄语】 请你再悄悄地努力一下,但愿有一天你可以说出那句话,我终于成为了不负众望的人了。

相关文章

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

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

  • JZ-060-把二叉树打印成多行

    把二叉树打印成多行 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。题目链接: 把二叉树...

  • [剑指offer]刷题笔记

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

  • 剑指第三周

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

  • 把二叉树打印成多行

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

  • 把二叉树打印成多行

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

  • 把二叉树打印成多行

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

  • 把二叉树打印成多行

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

  • 把二叉树打印成多行

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

  • 把二叉树打印成多行

    题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 AC代码 思路 关键点是找一个变量记录...

网友评论

      本文标题:JZ-060-把二叉树打印成多行

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