Redian新闻
>
请问一个简单的面试题
avatar
请问一个简单的面试题# JobHunting - 待字闺中
K*g
1
如果有人问你 Height of a BInary tree.
请问怎么回答?
avatar
j*n
2
遍历?

【在 K******g 的大作中提到】
: 如果有人问你 Height of a BInary tree.
: 请问怎么回答?

avatar
b*y
3
如果他是笼统的问题,那 average和best case都差不多是log(N)吧,worst case是N
,所有子node全挂在一边了, 这个是用来测试你对tree是不是了解基础知识吧。
如果题目是很specific的一个tree的话,那我觉得也是遍历了。
等高手
avatar
r*o
4
找二叉树的高度不是O(n)吗?

是N

【在 b*******y 的大作中提到】
: 如果他是笼统的问题,那 average和best case都差不多是log(N)吧,worst case是N
: ,所有子node全挂在一边了, 这个是用来测试你对tree是不是了解基础知识吧。
: 如果题目是很specific的一个tree的话,那我觉得也是遍历了。
: 等高手

avatar
s*a
5
我也觉得是啊~

【在 r****o 的大作中提到】
: 找二叉树的高度不是O(n)吗?
:
: 是N

avatar
l*a
6
请问这是算法题还是?
回答:root node到leaf node的最大路径,咋样?

【在 K******g 的大作中提到】
: 如果有人问你 Height of a BInary tree.
: 请问怎么回答?

avatar
y*i
7
如果要遍历,是用广度优先遍历么?最后一个元素的层高就是高度对吧?
avatar
d*e
8
看起来递归比较简单
int height(Node * node)
{
if(!node)
return 0;
int lh = height(node->left) + 1;
int rh = height(node->right) + 1;
return (lh > rh ? lh : rh);
}

【在 y**i 的大作中提到】
: 如果要遍历,是用广度优先遍历么?最后一个元素的层高就是高度对吧?
avatar
y*i
9
嗯,这个最好,不用遍历,时间复杂度O(n),只是空指针的情况下返回值是不是应该改
成-1?树的高度定义是不包括根结点的吧

【在 d**e 的大作中提到】
: 看起来递归比较简单
: int height(Node * node)
: {
: if(!node)
: return 0;
: int lh = height(node->left) + 1;
: int rh = height(node->right) + 1;
: return (lh > rh ? lh : rh);
: }

avatar
y*i
10
他说的average和best case是log(N)指的是树的高度不是时间复杂度吧,你说的应该是
算法的时间复杂度

【在 r****o 的大作中提到】
: 找二叉树的高度不是O(n)吗?
:
: 是N

avatar
d*e
11
对……我也没想清楚,呵呵

【在 y**i 的大作中提到】
: 嗯,这个最好,不用遍历,时间复杂度O(n),只是空指针的情况下返回值是不是应该改
: 成-1?树的高度定义是不包括根结点的吧

avatar
g*u
12
这怎么不是遍历了?
求树的高度,一定得遍历(假设你没有additional info)。如果你漏掉某个节点,得
到的结果就可能是错误的。
还有,我觉得用recursion都要考虑个recursion level的问题,很容易stack overflow
的。

【在 y**i 的大作中提到】
: 嗯,这个最好,不用遍历,时间复杂度O(n),只是空指针的情况下返回值是不是应该改
: 成-1?树的高度定义是不包括根结点的吧

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。