把二叉树打印成多行
Posted 樱圃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把二叉树打印成多行相关的知识,希望对你有一定的参考价值。
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
思路:需要保存下一层需要打印的节点个数。
ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>> arrayList = new ArrayList<>(); ArrayList<Integer> list = new ArrayList<>();; Queue<TreeNode> queue = new LinkedList<>(); if(pRoot!=null) { queue.add(pRoot); } int nextLevel = 0; int count = 1; while(!queue.isEmpty()){ count--; TreeNode node = queue.poll(); list.add(node.val); if(node.left!=null){ queue.add(node.left); nextLevel++; } if(node.right!=null){ queue.add(node.right); nextLevel++; } if(count == 0){ arrayList.add(list); count = nextLevel; nextLevel = 0; list = new ArrayList<Integer>(); } } return arrayList; }
以上是关于把二叉树打印成多行的主要内容,如果未能解决你的问题,请参考以下文章