You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python递归实现二叉搜索树时触发SyntaxError语法错误问题求助

问题定位
  • 核心语法错误在第6行的return语句:Python不支持return 变量名 = 表达式这种写法,赋值语句不能直接放在return后面作为返回内容,这是触发SyntaxError的直接原因。
  • 运算符使用错误:代码中bst["left_child"] == ...的==是相等比较运算符,执行后会返回True/False布尔值,不是你需要的给字典键赋值的操作,赋值应该用=。
  • 返回值逻辑错误:你用逗号分隔多个表达式写在return后,会返回一个由三个表达式结果组成的元组,完全不符合二叉搜索树的字典结构要求。
  • 边界逻辑缺陷:仅处理了列表长度为1的场景,未处理列表为空的递归终止场景,且长度为1时直接返回列表,和其他节点的字典结构不统一,后续取值会报错。
修正后的可运行代码
def build_bst(l):
    # 处理空列表递归边界
    if not l:
        return None
    # 叶子节点返回统一结构的字典
    if len(l) == 1:
        return {'data': l[0], 'left_child': None, 'right_child': None}
    mid = len(l) // 2
    # 先构建当前节点的字典结构
    bst = {
        'data': l[mid],
        'left_child': build_bst(l[:mid]),
        'right_child': build_bst(l[mid+1:])
    }
    # 直接返回构建完成的节点
    return bst

sorted_list = [12, 13, 14, 15, 16]
binary_search_tree = build_bst(sorted_list)
print(binary_search_tree)

内容的提问来源于stack exchange,提问作者atomic-coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:07