把二叉树打印成多行

题目形容

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

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

代码

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) {        }}
【每日寄语】 请你再悄悄地致力一下,但愿有一天你能够说出那句话,我终于成为了不负众望的人了。