劍指offer(三十七)之從上往下列印二叉樹
阿新 • • 發佈:2019-02-06
題目描述
從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
思路分析:使用兩個LIST,一個存放節點,一個存放值。先將根節點加入到LIST中,然後遍歷LIST中的元素,遍歷過程中,訪問該元素的左右節點,再將左右子節點加入到LIST中來
<span style="font-family:SimSun;font-size:18px;color:#3333ff;">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> listNode=new ArrayList<TreeNode> (); ArrayList<Integer> listVal=new ArrayList<Integer> (); if(root==null) return listVal; listNode.add(root); listVal.add(root.val); for(int i=0;i<listNode.size();i++){ TreeNode node= listNode.get(i); if(node.left!=null){ listNode.add(node.left); listVal.add(node.left.val); } if(node.right!=null){ listNode.add(node.right); listVal.add(node.right.val); } } return listVal; } }</span>