You need to enable JavaScript to run this app. LeetCode 1022根到叶二进制数求和:字符串转整数列表异常排查
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode 1022根到叶二进制数求和:字符串转整数列表异常排查

异常原因分析

所有异常的核心根源是你的递归函数返回值类型不统一,且和递归逻辑预期的返回格式不匹配,具体每个问题的原因如下:

  • 第一个异常:返回nums时报TypeError: can only concatenate str (not "int") to str,返回elements时无异常
    你递归逻辑里默认sumRootToLeaf调用返回的是字符串列表,当你返回elements时,所有递归分支确实都返回list[str]类型,拼接时str(root.val) + i的i是字符串,语法合法。而当你修改返回值为nums后,nums是整数列表,下层递归调用返回的就是list[int],遍历得到的i是整数,字符串和整数直接拼接就触发了类型错误。
  • 第二个异常:遍历elements返回首个元素得到10,不符合预期的100
    你修改代码后,非叶子节点的返回值从列表改成了单个字符串。当下层递归返回单个字符串时,上层for i in self.sumRootToLeaf(...)会把字符串当成可迭代对象遍历每个字符,你原本预期拿到完整的子路径字符串,实际拿到的是单个字符,拼接后得到的路径少了一位,因此结果不符合预期。
  • 第三个异常:拼接时加了str(i)转换后可以返回数组,但结果为[10, 11, 110, 111]不符合预期
    此时你返回的nums是list[int]类型,下层递归返回的是整数列表。比如子节点的完整路径是'00'、'01',转成整数后变成0、1,再转成字符串就变成了'0'、'1',相当于丢失了子路径的前置位,和上层节点值拼接后自然得到错误的路径数值。

内容的提问来源于stack exchange,提问作者maz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 01:57:00