【发布时间】:2011-10-27 05:34:02
【问题描述】:
我认为这是 O(n) 是否正确?我真的不擅长递归。有人可以确认一下,或者向我解释一下吗?
Counter(a)
if hasLeft(a)
return Counter(left(a) + Counter (right(a))
else
return 1
基本上,如果树中没有左节点,则返回0。如果有左音符,则返回1。
谢谢!
【问题讨论】:
-
如果您的意图是真正基于没有左节点/左节点返回 0 或 1,您可以非常轻松地制作 O(1) 例程,无需递归。除此之外,还不清楚您要完成什么,但感觉您的代码示例有缺陷(如果!hasLeft(a) .... recurse based on left(a)... 当您已经确定没有左分支。
-
对不起 - 我修好了。我不是故意的!我只是想在这里使用这个特定的代码来理解递归和时间复杂度。