二叉树宽度
来源:互联网 发布:转塔冲编程 编辑:程序博客网 时间:2024/05/09 21:41
求二叉树的宽度,就是求二叉树某一层上的节点数最多的数。
public static int getHeight(BiNode head){int deep = 0;if(head != null){int left = getHeight(head.left);int right = getHeight(head.right);deep = (left>=right)?(left+1):(right+1);}return deep;}public static int getWidth(BiNode head){if(head == null){return 0;}int nWidth = 0;int nLastLevelWidth = 0;int nTempLastLevelWidth = 0;int nCurLevelWidth = 0; Queue<BiNode> myQueue = new LinkedList<Demo.BiNode>();myQueue.add(head);nLastLevelWidth = 1;nWidth = 1;while(!myQueue.isEmpty()){nTempLastLevelWidth = nLastLevelWidth;BiNode tmp = null;while(nTempLastLevelWidth != 0){tmp = myQueue.peek();myQueue.poll();if(tmp.left != null){myQueue.add(tmp.left);}if(tmp.right != null){myQueue.add(tmp.right);}nTempLastLevelWidth--;}nCurLevelWidth = myQueue.size();nWidth = nCurLevelWidth>nWidth?nCurLevelWidth:nWidth;nLastLevelWidth = nCurLevelWidth;}return nWidth;}
参考:http://zhidao.baidu.com/link?url=K1xVilT0OyF_e_FbYr9FVycdq4MBgacNU-1iCOWtGvFJqwb28q1e5j1EJ4QefSy6Qe15ZHD9qV10Bi439AWbuq
http://zhidao.baidu.com/link?url=K1xVilT0OyF_e_FbYr9FVycdq4MBgacNU-1iCOWtGvFJqwb28q1e5j1EJ4QefSy6Qe15ZHD9qV10Bi439AWbuq
0 0
- 二叉树----宽度计算
- 二叉树----宽度计算
- 二叉树的宽度
- 二叉树的宽度
- 二叉树宽度
- 求二叉树宽度
- 二叉树 求宽度
- 二叉树宽度
- 求二叉树宽度
- 二叉树最大宽度
- 求二叉树宽度
- 二叉树宽度
- 二叉树的宽度
- 输出二叉树的宽度
- 二叉树宽度优先遍历
- 二叉树宽度和高度
- 求二叉树的宽度
- 二叉树宽度优先搜索
- texfield 中没有valuechange事件
- goldengate 长交易的处理方法
- ICMP协议之ping实现
- 浅谈CSS四大定位:static&relative&absolute&fixed
- RadioButton 自定义
- 二叉树宽度
- HDU1710Binary Tree Traversals
- 黑马程序员——Java--IO流练习笔记
- 短语搜索PhraseQuery
- picasso类图
- Majority Element 查找出现一半的数字
- 堆和栈的区别
- java AbstractQueuedSynchronizer的介绍和原理分析
- Centos版Linux 一些常用操作命令 收集