题解 | #从上往下打印二叉树#
从上往下打印二叉树
https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701
import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> result = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); if (root != null) { queue.add(root); while (!queue.isEmpty()) { // 取出头上第一个入队元素 TreeNode treeNode = ((LinkedList<TreeNode>)queue).pollFirst(); result.add(treeNode.val); if (treeNode.left != null) { ((LinkedList<TreeNode>)queue).add(treeNode.left); } if (treeNode.right != null) { ((LinkedList<TreeNode>)queue).add(treeNode.right); } } } return result; } }
解题思想:借助队列先进先出特性,层序遍历
#算法##算法笔记#