首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中减去二叉树的分支

在python中减去二叉树的分支
EN

Stack Overflow用户
提问于 2015-03-23 01:01:44
回答 1查看 229关注 0票数 0

就像我有这个问题,我根本不知道该怎么做。问题是这样的:

定义一个名为subt_tree()的递归函数,它接受二进制数字树,并递归地从左分支中减去每个右分支的值。例如,如果

代码语言:javascript
运行
复制
tree1 = (25,((10,4),(12,11)))

然后subt_tree(tree1)会回来

( 25 - (10-4) - (12-11) )=( 25 -(6-1))=( 25 -5)= 20。

因此,本质上,我必须使每个tuple成为一个减法问题,然后解决。

我试过这个:

代码语言:javascript
运行
复制
def subt_tree(bnt):
    """Takes a bnt and recursively subtracts the value of each right branch from the left branch.

    bnt -> number"""
    if not isinstance(bnt,tuple):
        return 1
    else:
        return subt_tree(bnt[0]) - subt_tree(bnt[1])

但是,我的else语句肯定有问题,因为不管我输入了什么,它都只返回0或1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-23 01:53:57

与其返回1,不如返回值本身?这毕竟是递归的大小写。

代码语言:javascript
运行
复制
def subt_tree(bnt):
    if not isinstance(bnt,tuple):
        return bnt
    else:
        return subt_tree(bnt[0]) - subt_tree(bnt[1])

如果您返回1,则只会得到一组值,其中包括从彼此之间减去1。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29201805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档