剑指Offer--从上往下打印二叉树

题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路 二叉树的一种中序遍历
我的Low代码

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 {
 
    ArrayList<TreeNode> cur = new ArrayList<TreeNode>();
 	ArrayList<TreeNode>  next = new ArrayList<TreeNode>();
	 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
		 ArrayList<Integer> list = new ArrayList<Integer>();
	        if(root==null) {
	        	return list;
	        }
	        cur.add(root);
	        list.add(root.val);
	        layTraversal(list);
	        return list;
	        
	    }
	 private void layTraversal(ArrayList<Integer>list) {
     	
		 while(!cur.isEmpty()) {
			 for(TreeNode node:cur) {
				 if(node.left!=null) {
					 next.add(node.left);
					 list.add(node.left.val);
				 }
				 if(node.right!=null) {
					 next.add(node.right);
					 list.add(node.right.val);
				 }
			 }
			 cur.clear();
			 cur.addAll(next);
			 next.clear();
		 }
		 
		
		 
     }
}
posted @ 2018-07-30 13:55  LynnMin  阅读(108)  评论(0编辑  收藏  举报