【剑指offer-Java版】23从上往下打印二叉树
2016-04-26 11:25
525 查看
从上往下打印二叉树:如果把这个书看做是一个特殊的图,那么该打印过程就类似于一个广度优先遍历
测试代码:
public class _Q23 { public <T> void PrintTreeFromTopToButtom(BinaryTreeNode<T> root){ if(root == null) return; Queue<BinaryTreeNode<T>> queue = new LinkedList<>(); queue.add(root); while(!queue.isEmpty()){ BinaryTreeNode<T> node = queue.remove(); if(node.leftChild != null) queue.add(node.leftChild); if(node.rightChild != null) queue.add(node.rightChild); System.out.print(node.value + " "); } System.out.println(); } }
测试代码:
public class _Q23Test extends TestCase { _Q23 tree = new _Q23(); public void test(){ BinaryTreeNode<Integer> root = new BinaryTreeNode<>(); BinaryTreeNode<Integer> node1 = new BinaryTreeNode<>(); BinaryTreeNode<Integer> node2 = new BinaryTreeNode<>(); BinaryTreeNode<Integer> node3 = new BinaryTreeNode<>(); BinaryTreeNode<Integer> node4 = new BinaryTreeNode<>(); BinaryTreeNode<Integer> node5 = new BinaryTreeNode<>(); BinaryTreeNode<Integer> node6 = new BinaryTreeNode<>(); root.value = 8; node1.value = 6; node2.value = 10; node3.value = 5; node4.value = 7; node5.value = 9; node6.value = 11; root.leftChild = node1; root.rightChild = node2; node1.leftChild = node3; node1.rightChild = node4; node2.leftChild = node5; node2.rightChild = node6; node3.leftChild = null; node3.rightChild = null; node4.leftChild = null; node4.rightChild = null; node5.leftChild = null; node5.rightChild = null; node6.leftChild = null; node6.rightChild = null; tree.PrintTreeFromTopToButtom(root); tree.PrintTreeFromTopToButtom(null); tree.PrintTreeFromTopToButtom(node1); } }
相关文章推荐
- \0 导致JSON无法解析的问题
- 【剑指offer-Java版】22栈的压入弹出序列
- js刷新页面方法大全
- js对字符串的处理--查找,合并,截取
- Extjs4中up()和down()的用法
- 【剑指offer-Java版】21包含min函数的栈
- ExtJs xtype一览
- jQuery与JavaScript入门经典——AJAX
- JSTL标签库大全
- Chrome 调试动态Javascript
- JSTL标签用法 详解
- 几种常用JQuery插件介绍
- Caffe学习系列(3):视觉层(Vision Layers)及参数
- 利用HTML5的canvas制作万花筒动画特效
- JSP EL表达式详细介绍
- css文字环绕图片--遇到的问题及解决方法
- 立即执行函数表达式(IIFE )
- [转]JQuery更改input元素的disabled属性——disabled<——>enabled
- BufferedReader & BufferedWriter
- 多个图片文件夹生成一个大css文件的方法