[劍指offer] --23.從上往下列印二叉樹
阿新 • • 發佈:2018-11-15
題目描述
從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
import java.util.ArrayList; /** 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模擬一個佇列來儲存相應的TreeNode
- 依次判斷左右子樹是否存在,存在就放入佇列中
public class Solution22 { /** * 利用arraylist模擬一個佇列來儲存相應的TreeNode * @param root * @return */ public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> list = new ArrayList<>(); ArrayList<TreeNode> queue = new ArrayList<>(); if (root == null) { return list; } queue.add(root); while (queue.size() != 0) { TreeNode temp = queue.remove(0); if (temp.left != null){ queue.add(temp.left); } if (temp.right != null) { queue.add(temp.right); } list.add(temp.val); } return list; } public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } }