您的位置:首页 > Web前端

剑指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>

使用类比的方法来编程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息