从品牌网站建设到网络营销策划,从策略到执行的一站式服务
对于二叉树的大的深度,可以采用递归算法。
算法描述如下:
如果根结点为null,那么深度=0
如果根结点不是null,那么就看该当前结点的左孩子的深度和右孩子的深度
如果左孩子深度>=右孩子的深度,那么当前根结点的深度就是左孩子的深度+1.
反之则为右孩子的深度+1
对每个左孩子右孩子也是采用同样的算法。到某一节点是null的时候,才能返回0;
之前的文章有关于二叉树遍历的算法的描述。此处,对于遍历可以做一些小的改进,使它可以在遍历的时候计算出当前节点的深度。只要在递归方法中加入一个深度参数,每次调用的递归方法的时候,该参数都会自增1.则可以计算出深度。
假设构造出2棵树
字母树
数字树
采用算法计算深度,和遍历。
结果如下:
具体代码如下:
- using
- using
- using
- using
- namespace
- #region 节点的定义
- class
- publicstring
- public
- public
- publicstring
- publicvoid//设定左右孩子
- this
- this
- publicbool//是否有左孩子
- get
- returnnull
- publicbool//是否有右孩子
- get
- returnnull
- publicbool//是否有右孩子
- get
- return
- #endregion
- class
- staticvoidstring
- new"a"
- new"b"
- new"c"
- new"d"
- new"e"
- new"f"
- new"g"
- new"h"
- new"i"
- //构造一棵二叉树
- "maxDepth:"
- new"1"
- new"2"
- new"3"
- new"4"
- new"5"
- new"6"
- new"7"
- new"8"
- new"9"
- new"10"
- new"11"
- new"12"
- new"13"
- //构造一棵二叉树
- null
- null
- null
- null
- null
- null
- "maxDepth:"
- //计算深度
- staticint
- ifnull
- return
- else
- int//递归计算左孩子的深度
- int//递归计算右孩子的深度
- if
- return
- else
- return
- //先序遍历 //DLR
- staticvoidint
- "-depth:"
- if
- if
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图