从上到下打印二叉树

从上到下打印二叉树

实现思路
使用队列存储对应的排序序列 。对于任何一个节点,当遍历到他时,要把他的左右子节点 加入到 当前队列的尾部、
代码:

import java.util.PriorityQueue;
import java.util.Queue;

/**
 * 
 */

/***
 * @author 18071
 * @Date 2019年3月10日
 * 功能:
 ***/
public class test {
	public static void main(String args[]) {
		TreeNode root =new TreeNode (1);
		root.right=new TreeNode (3);
		root.left=new TreeNode (3);
		root.left.left=new TreeNode (7);
		root.right.right=new TreeNode(7);
		Solution  s =new Solution(root);
		s.init(root);
		s.prin();
		}
	
}

class Solution{
	Queue queue =new  PriorityQueue ();
	Solution(TreeNode root){
		queue.offer(root.val);	
		
	}
	public void init(TreeNode root) {
		if(root==null) {
			return;
		}
		if(root.left!=null) {
			queue.offer(root.left.val);
		}
		if(root.right!=null) {
			queue.offer(root.right.val);
		}
		
			init(root.left);
			init(root.right);
			
		}
	
	public void prin() {
		while(!queue.isEmpty()) {
			System.out.println(queue.poll());	
			}
	}
}

class TreeNode {
	TreeNode left;
	TreeNode right;
	int val;

	TreeNode(int x) {
		this.val = x;

	}
}

从上到下打印二叉树