1. 程式人生 > >JAVA實現從上往下列印二叉樹(《劍指offer》)

JAVA實現從上往下列印二叉樹(《劍指offer》)

題目描述

從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
import java.util.ArrayList;
import java.util.LinkedList;

/**
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) {
      
        if (root == null) {
            return result;
            }
         ArrayList<Integer> result=new ArrayList<Integer>();
        LinkedList<TreeNode> queue=new LinkedList<TreeNode>();
        
        queue.offer(root);
        result.add(root.val);
        while(!queue.isEmpty()){
            int size=queue.size();
            for(int i=0;i<size;i++){
                TreeNode head=queue.poll();
                 
            if(head.left!=null){
                queue.offer(head.left);
                result.add(head.left.val);  
            }
            if(head.right!=null){
             queue.offer(head.right);  
             result.add(head.right.val);  
             }
            }
         
        }
        return result;
    }
}