从上到下打印二叉树 II
Posted heaveneleven
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从上到下打印二叉树 II相关的知识,希望对你有一定的参考价值。
题目:
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
给定二叉树: [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
返回其层次遍历结果:
[
[3],
[9,20],
[15,7]
]
提示:
节点总数 <= 1000
解答:
层次遍历的过程中,当前层确定出下一层,所以在遍历当前层的同时找出下一层所有节点;为了避免不同层的节点在同一个队列里面混淆,遍历当前节点时,用临时队列将下一层节点存起来,然后再赋予第一层队列;
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 class Solution { 11 public List<List<Integer>> levelOrder(TreeNode root) { 12 if(root == null){ 13 return new ArrayList(); 14 } 15 List<List<Integer>> ret = new ArrayList<>(); 16 Queue<TreeNode> current = new LinkedList<>(); 17 current.add(root); 18 while(!current.isEmpty()){ 19 List<Integer> list = new ArrayList<>(); 20 Queue<TreeNode> next = new LinkedList<>(); 21 while(!current.isEmpty()){ 22 TreeNode node = current.poll(); 23 if(node.left != null){ 24 next.add(node.left); 25 } 26 if(node.right != null){ 27 next.add(node.right); 28 } 29 list.add(node.val); 30 } 31 current = next; 32 ret.add(list); 33 } 34 return ret; 35 } 36 }
以上是关于从上到下打印二叉树 II的主要内容,如果未能解决你的问题,请参考以下文章
剑指 Offer 32 - II. 从上到下打印二叉树 II
LeetCode | 面试题32 - II. 从上到下打印二叉树 II剑指OfferPython
简洁+注释剑指 Offer 32 - II. 从上到下打印二叉树 II