java 求二叉树的深度
来源:互联网 发布:sql 计算查询结果合计 编辑:程序博客网 时间:2024/06/05 16:09
public class Node{Node lChild;Node rChild;int data;Node(int data){lChild = null;rChild = null;this.data = data;}}
public class BinTreeTest2 {private static int arr[] = {1,2,4,-1,-1,-1,3,5,7,-1,-1,8,-1,-1,6};private static AtomicInteger index = new AtomicInteger(0);//计数器private int getNextValue(){return arr[index.getAndIncrement()];}private boolean isEnd(){return index.get() == arr.length;}private Node createBinTree(){if(isEnd()){//获取结束return null;}int data = getNextValue();if(data == -1){return null;}Node node = new Node(data);node.lChild = createBinTree();node.rChild = createBinTree();return node;}//中序public static void inOrderTraverse(Node node){if(node == null){return;}inOrderTraverse(node.lChild);System.out.println(node.data+"");inOrderTraverse(node.rChild);}//先序public static void prOrderTraverse(Node node){if(node == null){return;}System.out.println(node.data+"");prOrderTraverse(node.lChild);prOrderTraverse(node.rChild);}//后序public static void poOrderTraverse(Node node){if(node == null){return;}poOrderTraverse(node.lChild);poOrderTraverse(node.rChild);System.out.println(node.data+"");}//求深度public int height(Node node){int h, h1, h2;if(node == null){return 0;}h1 = height(node.lChild);h2 = height(node.rChild);h = Math.max(h1, h2) + 1;return h;}//数节点public int count(Node node){int m, n;if(node == null){return 0;}if(node.lChild == null && node.rChild == null){return 1;}m = height(node.lChild);n = height(node.rChild);return m + n;}public static void main(String[] args) {BinTreeTest2 tree = new BinTreeTest2();Node root = null;root = tree.createBinTree();poOrderTraverse(root);int h = tree.height(root);int sum = tree.count(root);System.out.println("height = " + h);System.out.println("sum = " + sum);}}
0 0
- java 求二叉树的深度
- Java代码 求二叉树的深度
- 求二叉树的深度 java描述
- java 求二叉树的深度
- java 求二叉树深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 黑马程序员------学习笔记(6)集合
- 黑马程序员------学习笔记(7)多线程
- 辛星浅析邮件服务中的几个概念
- c# 加密算法集锦
- 黑马程序员------学习笔记(8)网络编程
- java 求二叉树的深度
- 请区别对待女程序员 .
- 咦,你也在混日子啊 .
- 那些害死程序员的细节 .
- 上课觉得刚好鬼离开家就很尴尬
- 2015.04.01 Leetcode Insert interval
- 坑坑的程序员
- [LinkedIn] Word Distance Finder (Find distance in dictionary)
- 一切成功源于积累——20150401 黄金 2800点