【发布时间】:2020-09-08 16:39:54
【问题描述】:
我正在尝试找出解决此问题的递归方法。主要是返回节点所在的二叉树中的级别。
def find_depth(tree, node):
if node == None:
return 0
else:
return max(find_depth(tree.left))
#recursive solution here
使用这个类作为值:
class Tree:
def __init__(self, value, left=None, right=None):
self.value = value
self.left = left
self.right = right
示例:调用 find_depth(tree, 7) 应该返回 7 在树中的级别。 (2级)
3
/ \
7 1 <------ return that 7 is at level 2
/ \
9 3
【问题讨论】:
-
如何在树中搜索节点?使用相同的逻辑。如果必须往下走节点,返回1 + recursivefunction(),如果找到节点,返回0。
-
你错过了将孩子添加到你的树中。在当前状态下,类 Tree 仅附加到第一级,因为您没有向子级添加任何级别。
-
提示:深度记录可能还需要一个参数。当在子树中找不到节点时,应该返回一些特殊的东西。
标签: python recursion binary-tree