剑指Offer 23题 从上往下打印二叉树 Java版

本文介绍了一种使用队列实现的二叉树层次遍历算法,并通过具体示例展示了如何从根节点开始逐层打印出每个节点的值。该算法适用于需要按层次顺序处理二叉树节点的应用场景。
package test;

import java.util.LinkedList;
import java.util.Queue;

public class PrintFormTopToBottom {
	
	 class BinaryTreeNode{
		int value;
		BinaryTreeNode left;
		BinaryTreeNode right;
	}
	
	 public void printFormTopToBottom(BinaryTreeNode root){
		 if(root == null)
			 return;
		 Queue<BinaryTreeNode> queue = new LinkedList<>();
		 queue.offer(root);
		 while(!queue.isEmpty()){
			 BinaryTreeNode node = queue.poll();
			 System.out.println(node.value);
			 if(node.left != null)
				 queue.offer(node.left);
			 if(node.right != null)
				 queue.offer(node.right);
		 }
	 }
	

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		PrintFormTopToBottom printFormTopToBottom = new PrintFormTopToBottom();
		BinaryTreeNode node8 = printFormTopToBottom.new BinaryTreeNode();
		node8.value = 8;
		BinaryTreeNode node6 = printFormTopToBottom.new BinaryTreeNode();
		node6.value = 6;
		BinaryTreeNode node10 = printFormTopToBottom.new BinaryTreeNode();
		node10.value = 10;
		BinaryTreeNode node5 = printFormTopToBottom.new BinaryTreeNode();
		node5.value = 5;
		BinaryTreeNode node7 = printFormTopToBottom.new BinaryTreeNode();
		node7.value = 7;
		BinaryTreeNode node9 = printFormTopToBottom.new BinaryTreeNode();
		node9.value = 9;
		BinaryTreeNode node11 = printFormTopToBottom.new BinaryTreeNode();
		node11.value = 11;
		
		node8.left = node6;
		node8.right = node10;
		node6.left = node5;
		node6.right = node7;
		node10.left = node9;
		node10.right = node11;
		
		printFormTopToBottom.printFormTopToBottom(node8);
		
	}

}



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值