求思路啊
1条回答 默认 最新
- bobhuang 2021-10-28 19:19关注
如果两个树A和B做add_tree操作,得到C,则基本的规则可以解释为:
1.A和B都有的节点,则对应节点上的数值相加,为C的对应节点;
2.A有而B没有的节点,直接复制到C的对应节点上,反之亦然。思路:
用递归实现,每次合并一层,即当前节点,并在当前层的A、B两棵树都不为空时,逐个合并子节点。
函数形式代码:def add_tree(A, B): if (A is None) and (B is not None): return B else if (A is not None) and (B is None): return A # 都不为空, 逐个合并 val_a, leaves_a = get_val_leaves(A) val_b, leaves_b = get_val_leaves(B) val_c = val_a + val_b leaves_c = merge_leaves(leaves_a, leaves_b) if leaves_c is None: return val_c else: return (val_c, leaves_c)
子函数 get_val_leaves,和 merge_leaves,根据语义类推。merge_leaves和add_tree是差不多的逻辑。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
- ¥20 软件测试决策法疑问求解答
- ¥15 win11 23H2删除推荐的项目,支持注册表等
- ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
- ¥15 qt6.6.3 基于百度云的语音识别 不会改
- ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
- ¥15 神经网络怎么把隐含层变量融合到损失函数中?
- ¥15 lingo18勾选global solver求解使用的算法
- ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
- ¥20 测距传感器数据手册i2c