牛客網劍指offer程式設計題——從上往下列印二叉樹(Java)
阿新 • • 發佈:2019-01-23
解題思路:從上往下列印,則是父節點—>左子節點—>右子節點的順序,總的來說順序是很明確的,左子節點的子節點也優先於右子節點的子節點,所以只要從左往右依次遍歷左右子節點,子節點的子節點也能是順序排列的,佇列可以滿足該需求
程式碼如下:
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> list = new ArrayList<Integer>(); LinkedList queue = new LinkedList(); if(root == null){ return new ArrayList<Integer>(); } TreeNode temp = root; queue.add(temp); while (!queue.isEmpty()){ temp = (TreeNode)queue.poll(); list.add(temp.val); if(temp.left != null){ queue.add(temp.left); } if(temp.right != null){ queue.add(temp.right); } } return list; } }
end