从上往下打印二叉树
题目:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
代码:
package com.sjsq.test; import java.util.ArrayList; import java.util.Deque; import java.util.LinkedList; /** * @author shuijianshiqing * @date 2020/5/24 10:43 */ /** * 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 */ public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { // 定义双向队列 Deque<TreeNode> deque = new LinkedList<>(); // 定义数组来存放结果 ArrayList<Integer> result = new ArrayList<>(); if(root == null){ return result; } deque.add(root); while(!deque.isEmpty()){ TreeNode node = deque.getFirst(); deque.pollFirst(); result.add(node.val); // 判断有没有左子树 if(node.left != null){ deque.addLast(node.left); } // 判断有没有右子树 if(node.right != null){ deque.addLast(node.right); } } return result; } }