《劍指offer》系列 從上往下列印二叉樹(Java)
阿新 • • 發佈:2018-12-20
連結
題目描述
從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
思路
題目給定函式返回的只是一個ArrayList,還是比較簡單的,這種型別題目基本都要藉助一個輔助的佇列,看程式碼大家應該都能理解。
程式碼
import java.util.ArrayList; import java.util.LinkedList; import java.util.List; 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> list = new ArrayList<Integer>(); if(root==null) return list; Queue<TreeNode> queue = new LinkedList<TreeNode>(); //先將根節點壓入queue中 queue.add(root); while(!queue.isEmpty()) { TreeNode temp = queue.peek(); queue.remove(); list.add(temp.val); if(temp.left!=null) queue.add(temp.left); if(temp.right!=null) queue.add(temp.right); } return list; } }