剑指OFFER-从上往下打印二叉树(Java)

it2024-01-31  73

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

核心代码实现

import java.util.*; /** 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<>(); //result用来保存输出的节点 Queue<TreeNode> nodes = new LinkedList<>(); //nodes用来保存当前遍历到的节点 if(root == null){ //空树,返回一个默认构造的空LinkedList return result; } nodes.offer(root); //offer(obj):添加队尾元素 while(!nodes.isEmpty()){ TreeNode temp = nodes.poll(); //poll():访问队头元素并移除 result.add(temp.val); if(temp.left != null){ nodes.offer(temp.left); } if(temp.right != null){ nodes.offer(temp.right); } } return result; } }
最新回复(0)