首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 输出该树的深度3。 二元树的结点定义如下: struct SBinaryTreeNode // a node of the
输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 输出该树的深度3。 二元树的结点定义如下: struct SBinaryTreeNode // a node of the
admin
2019-03-29
93
问题
输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
输出该树的深度3。
二元树的结点定义如下:
struct SBinaryTreeNode // a node of the binary tree
{
int m_nValue; // value of node
SBinaryTreeNode *m_pLeft; // left child of node
SBinaryTreeNode *m_pRight; // right child of node
};
选项
答案
/////////////////////////////////////////////////////////////////////// // Get depth of a binary tree // Input: pTreeNode - the head of a binary tree // Output: the depth of a binary tree /////////////////////////////////////////////////////////////////////// int TreeDepth(SBinaryTreeNode *pTreeNode) { // the depth of a empty tree is 0 if(!pTreeNode) return 0; // the depth of left sub-tree int nLeft = TreeDepth(pTreeNode->m_pLeft); // the depth of right sub-tree int nRight = TreeDepth(pTreeNode->m_pRight); // depth is the binary tree return (nLeft > nRight) ? (nLeft + 1) : (nRight + 1); }
解析
这道题本质上还是考查二元树的遍历。
题目给出了一种树的深度的定义。当然,我们可以按照这种定义去得到树的所有路径,也就能得到最长路径以及它的长度。只是这种思路用来写程序有点麻烦。
我们还可以从另外一个角度来理解树的深度。如果一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1。如果既有右子树又有左子树呢?那该树的深度就是其左、右子树深度的较大值再加1。
上面的这个思路用递归的方法很容易实现,只需要对遍历的代码稍作修改即可。
转载请注明原文地址:https://kaotiyun.com/show/cRmZ777K
0
程序员面试
相关试题推荐
Notuntilthe1980’s______inBeijingstarttofindwaystopreservehistoricbuildingsfromdestruction.
TheGreeksassumedthatthestructureoflanguagehadsomeconnectionwiththeprocessofthought,whichtookrootinEuropelon
AnE-mailtoaRoommate写给室友的邮件YouaregoingtostudyabroadandshareanapartmentwithJohn,alocalstudent.Writehimane-
YouhavereceivedaletterfromSophia.Sheexpressedheradmirationformicro-bloggingandwonderedwhetheritcanreplacebook
Inthissection,youareaskedtowriteanessaybasedonthefollowinginformation.Makecommentsandexpressyourownopinion.
删除字符串中的数字并压缩字符串(神州数码以前笔试题),如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))
n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。
Excel2000中,列标()A.可以用各种符号表示B.用数字表示C.用字母表示D.可以用中文文字表示
一个软件的架构设计是随着技术的不断进步而不断变化的。以编译器为例,其主流架构经历了管道—过滤器到数据共享为中心的转变过程。以下关于编译器架构的叙述中,错误的是______。
在数据库系统中,“事务”是访问数据库并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求数据库系统维护事务的原子性、一致性、隔离性和持久性。针对事务的这4种特性,考虑以下的架构设计场景:假设在某一个时刻只有一个活动的事务,为了保证事务
随机试题
________又称青小豆、吉豆。
阴偏衰的关键是
Ⅱ度烧伤病人需补液的条件是烧伤面积在()
患者,女,31岁。已婚。停经2个月余,反复少量阴道流血18天,10天前曾下腹剧痛。现小腹坠胀。妇科盆腔及B型超声波检查;子宫大小正常,右附件包块约7cm×6cm×5cm大小,尿妊娠试验可疑(+)。应首先考虑的是
根据简单过滤器规则,( )。
下列关于公司经营战略的分析,说法正确的有()。
倍增十二度转位后为单音程,应为()。
Mostepisodesofabsent-mindedness—forgettingwhereyouleftsomethingorwonderingwhyyoujustenteredaroom—arecausedbya
Latelysocialscientistshavebeguntoaskifcultureisfoundjustinhumans,orifsomeanimalshaveculturetoo.Whenwespea
下列说法中,正确的是
最新回复
(
0
)