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

泛型树Next larger element求解代码列表为空问题排查

错误原因

列表为空和你存储节点地址没有任何关系,两个核心错误直接导致代码运行异常:

  • 你定义了用于遍历树的递归函数helper,但从未主动调用该函数。初始化后的空列表li没有执行过任何元素追加操作,排序时自然还是空值。
  • 你定义的helper仅接收1个形参,但递归调用时传入了child和n两个参数,即便补上初始调用,也会触发参数数量不匹配的运行时错误。
修复后的代码

只需要补上递归函数的初始调用,同时删除递归传参时多余的n即可,你的整体思路是可运行的:

def nextLargest(tree, n):
    li = []
  
    def helper(node):
        li.append([node, node.data])
        for child in node.children:
            helper(child)
    # 启动递归遍历
    helper(tree)
    li = sorted(li, key=lambda x: x[1])
    
    for ele in li:
        if ele[1] > n:
            return ele[0]

补充说明:Python中列表存储对象引用是完全正常的操作,不会导致append失效,也不会丢失节点数据。你提到的非最优问题确实存在——不需要把所有节点存入列表再排序,遍历过程中维护一个记录「值大于n且最小」的对应节点,就能把时间复杂度从O(klogk)降到O(k)(k为节点总数),但这不影响你当前写法修复后正常通过用例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:51:45