计算二叉树中偶数叶子的数量
Count number of even leaves in a Binary Number Tree
好的,所以对于这个作业,我必须定义一个递归函数,它采用二进制数树和 returns 上有偶数的叶子的数量。我到目前为止的功能如下所示:
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)
在我看来这应该有效,但它没有返回我期望的答案。
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
这是您要找的吗?我假设所有叶子都只是整数,一个不是叶子的节点是一个 tuple/array,包含 [0] 和 [1] 中的左右子节点。
好的,所以对于这个作业,我必须定义一个递归函数,它采用二进制数树和 returns 上有偶数的叶子的数量。我到目前为止的功能如下所示:
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)
在我看来这应该有效,但它没有返回我期望的答案。
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
这是您要找的吗?我假设所有叶子都只是整数,一个不是叶子的节点是一个 tuple/array,包含 [0] 和 [1] 中的左右子节点。