求树的最大宽度和最大深度
来源:互联网 发布:瑞易物管软件 编辑:程序博客网 时间:2024/05/16 06:58
原文地址:http://blog.csdn.net/salahelx/article/details/46727499
二叉树深度:这个可以使用递归,分别求出左子树的深度、右子树的深度,两个深度的较大值+1即可。
private static int getHeight(BiNode head) { if(head==null) //结束条件 return 0; else return 1+Math.max(getHeight(head.left), getHeight(head.right)); }
二叉树宽度:使用队列,层次遍历二叉树。在上一层遍历完成后,下一层的所有节点已经放到队列中,此时队列中的元素个数就是下一层的宽度。以此类推,依次遍历下一层即可求出二叉树的最大宽度。
private static int getWidth(BiNode head) { if(head==null) return 0; int max=1; LinkedList<BiNode>ll=new LinkedList<BiNode>(); ll.add(head); while(true){ int len=ll.size(); if(len==0) break; while(len>0){ BiNode b=ll.poll(); len--; if(b.left!=null) ll.add(b.left); if(b.right!=null) ll.add(b.right); } max=Math.max(max, ll.size()); } return max; }
0 0
- 求树的最大宽度和最大深度
- 求二叉树的深度和宽度平衡最大距离
- 求二叉树的最大深度与最大宽度
- 二叉树的最大深度和宽度
- 找出二叉树的最大宽度和最大深度
- 二叉树的最大深度和最大宽度
- 算法 - 求二叉树的最大深度
- 求二叉树的最大深度
- 求二叉树的最大深度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 二叉树的最大宽度和高度
- 在Emulator上模拟来电、短信等 效果
- struts2封装页面传过来的多个id(ids)
- Java中List转换为数组,数组转List
- 开发者都应该使用的10个C++11特性
- 批量入库时报错:prepared statement contains too many placeholders
- 求树的最大宽度和最大深度
- C++11新特性
- 每天进步一点点 SQL简介
- rocketmq 启动报错 java.lang.ExceptionInInitializerError
- php算法
- 对web标准以及W3C的理解与认识
- 面试算法--if语句中使用赋值语句
- Effective Java学习笔记 第60条: 优先使用标准的异常
- getParameter和 getAttribute的区别?