博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微软面试题:写程序找出二叉树的深度
阅读量:7128 次
发布时间:2019-06-28

本文共 650 字,大约阅读时间需要 2 分钟。

一个树的深度等于max(左子树深度,右子树深度)+1。可以使用递归实现。

int DepthOfTree(BiTreeNode* root){ if(NULL == root) {  return 0; } return max(DepthOfTree(root->leftChild), DepthOfTree(root->rightChild))+1;}

也可以采用下面的思路:

类似于递归的先序遍历,层层向下计算,每向下计算一层,深度 

                 就加1,CalTreeDepth(PNode pn, unsigned n)中的第二个 
                 参数表示上一层的深度,所以程序在调用时, 假设proot为整个 
                 树的根节点,则其深度depth为: 
                                   unsigned depth = CalTreeDepth(proot, 0); 
*/ 
代码如下:

unsigned CalTreeDepth(PNode pn, unsigned n){        static unsigned d = 0;          //使用static变量d来记录出现的最大深度        if(pn)        {            if(n+1 > d)                d = n+1;            CalTreeDepth(pn->left, n+1);            CalTreeDepth(pn->right, n+1);        }        return d;}

转载地址:http://ttoel.baihongyu.com/

你可能感兴趣的文章
Largest Rectangle in Histogram
查看>>
聊聊pg jdbc的queryTimeout及next方法
查看>>
golang 依赖管理
查看>>
Java常用工具类整理
查看>>
FED之必备技能
查看>>
高性能磁盘 I/O 开发学习笔记 -- 硬件原理篇
查看>>
一个还算优雅的 react 图片组件
查看>>
JSON应知应会
查看>>
一个PHP文件搞定支付宝系列之手机网站支付(兼容微信浏览器)
查看>>
设计模式之代理模式
查看>>
客服系统从Require.js到Webpack
查看>>
React 16 中的异常处理
查看>>
独家解析Javascript原型继承
查看>>
springboot集成mqtt
查看>>
重拾css(3)——学习css的思路
查看>>
SegmentFault 社区访谈 | 有位公子在奇舞
查看>>
jQuery源码分析之jQuery的定义
查看>>
一些经典面试题分析(上)
查看>>
[JS相关的记录01] 那什么来面对你,面向对象编程(__proto__,prototype,constructor以及原型链)...
查看>>
夏日葵电商:搭建一个商城系统,N+功能方案揭秘!
查看>>