好的,对于这个赋值,我必须定义一个递归函数,它接受一个二进制数字树并返回它们上有偶数的叶子数。我的功能远远看起来像这样:
def count_even_leaves(bnt):
"""bnt -> number"""
evens = []
if not isinstance(bnt,tuple):
return bnt
else:
if count_even_leaves(bnt[0]) % 2 == 0:
evens.append(count_even_leaves(bnt[0]))
elif count_even_leaves(bnt[1]) % 2 == 0:
evens.append(count_even_leaves(bnt[1]))
return len(evens)
在我看来,它似乎应该有效,但它没有回复我期望的答案。
答案 0 :(得分:2)
def count_even_leaves(bnt):
if not isinstance(bnt,tuple):
return (bnt+1)%2
evens = count_even_leaves(bnt[0])
evens += count_even_leaves(bnt[1])
return evens
这是你正在寻找的吗?我假设所有叶子都是整数,而一个不是假的节点是包含[0]和[1]中左右孩子的元组/数组。