剑指offer19--依次打印队列二叉树中的元素
2016-05-28 22:08
405 查看
题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左向右的顺序打印。
要是想不到使用队列的方式来解决这个问题的话,那么这个题目就会比较难办了
<span style="font-size:18px; background-color: rgb(255, 255, 255);">package 剑指offer;
import java.util.*;
/*题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左向右的顺序打印。*/
public class Test22 {
//定义一个参数是二叉树结点的打印函数即可
public static void printBinaryTree(BinaryTreeNode node){
//从左到右是逐层打印
if(node == null){
return ;
}
if(node != null)
{
Queue<BinaryTreeNode> list = new LinkedList<>();
list.add(node);
BinaryTreeNode thisNode = new BinaryTreeNode();
while(!list.isEmpty()){
thisNode = list.remove();
System.out.print(thisNode.value+" ");
//如果左结点不为空则入队列
if(thisNode.left != null){
list.add(thisNode.left);
}
if(thisNode.right != null){
list.add(thisNode.right);
}
}
}
}
public static void main(String args[]){
BinaryTreeNode root = new BinaryTreeNode();
root.value = 8;
root.left = new BinaryTreeNode();
root.left.value = 6;
root.left.left = new BinaryTreeNode();
root.left.left.value = 5;
root.left.right = new BinaryTreeNode();
root.left.right.value = 7;
root.right = new BinaryTreeNode();
root.right.value = 10;
root.right.left = new BinaryTreeNode();
root.right.left.value = 9;
root.right.right = new BinaryTreeNode();
root.right.right.value = 11;
printBinaryTree(root);
}
}
class BinaryTreeNode{
int value;
BinaryTreeNode left;
BinaryTreeNode right;
}</span><span style="font-size:18px; color: rgb(0, 0, 153); background-color: rgb(0, 0, 0);">
</span><span style="background-color: rgb(0, 0, 0);"><span style="font-family:Microsoft YaHei;font-size:24px;color:#ff0000;"><strong>
</strong></span></span>
使用类比的方法来编程
要是想不到使用队列的方式来解决这个问题的话,那么这个题目就会比较难办了
<span style="font-size:18px; background-color: rgb(255, 255, 255);">package 剑指offer;
import java.util.*;
/*题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左向右的顺序打印。*/
public class Test22 {
//定义一个参数是二叉树结点的打印函数即可
public static void printBinaryTree(BinaryTreeNode node){
//从左到右是逐层打印
if(node == null){
return ;
}
if(node != null)
{
Queue<BinaryTreeNode> list = new LinkedList<>();
list.add(node);
BinaryTreeNode thisNode = new BinaryTreeNode();
while(!list.isEmpty()){
thisNode = list.remove();
System.out.print(thisNode.value+" ");
//如果左结点不为空则入队列
if(thisNode.left != null){
list.add(thisNode.left);
}
if(thisNode.right != null){
list.add(thisNode.right);
}
}
}
}
public static void main(String args[]){
BinaryTreeNode root = new BinaryTreeNode();
root.value = 8;
root.left = new BinaryTreeNode();
root.left.value = 6;
root.left.left = new BinaryTreeNode();
root.left.left.value = 5;
root.left.right = new BinaryTreeNode();
root.left.right.value = 7;
root.right = new BinaryTreeNode();
root.right.value = 10;
root.right.left = new BinaryTreeNode();
root.right.left.value = 9;
root.right.right = new BinaryTreeNode();
root.right.right.value = 11;
printBinaryTree(root);
}
}
class BinaryTreeNode{
int value;
BinaryTreeNode left;
BinaryTreeNode right;
}</span><span style="font-size:18px; color: rgb(0, 0, 153); background-color: rgb(0, 0, 0);">
</span><span style="background-color: rgb(0, 0, 0);"><span style="font-family:Microsoft YaHei;font-size:24px;color:#ff0000;"><strong>
</strong></span></span>
使用类比的方法来编程
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树