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

LeetCode合并两个有序链表Python提交报Solution未定义错误咨询

为什么LeetCode要求题解必须遵循固定编写框架?

以合并两个有序链表题目为例,平台默认给出的Python代码框架如下:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:

有用户不理解为何必须使用类结构,自行编写了独立的mergeTwoLists函数实现逻辑,代码如下:

def mergeTwoLists(list1, list2):

    if len(list1) == 0 or len(list2) == 0:
        ans = list1 + list2
    elif list1[-1] < list2[0]:
        ans = list1.extend(list2)
    elif list2[-1] < list1[0]:
        ans = list2.extend(list1)
    else:

        i = len(list1) - 1
        j = -1

        for item in list2:
            for x in range(i, j, -1):

                if item >= list1[x]:
                    list1.insert(x+1,item)
                    i += 1
                    j = x 
                    ans = list1
                    break
                
                
    return ans

提交代码时平台返回如下运行错误:

Runtime Error Message:
NameError: name 'Solution' is not defined
    ret = Solution().mergeTwoLists(param_1, param_2)
Line 50 in _driver (Solution.py)
    _driver()
Line 61 in <module> (Solution.py)
Last executed input:
[1,2,4]
[1,3,4]

该用户表示这段代码在本地机器运行完全正常,不清楚报错产生的原因。

问题根因说明

直接报错原因

LeetCode后台判题逻辑是固定硬编码的:判题程序会主动实例化名为Solution的类,再调用该类下与题目同名的解题方法,传入提前构造好的测试用例参数,最后比对方法返回值和标准答案是否一致。
用户提交的代码中没有定义Solution类,判题程序执行到实例化Solution的步骤时自然会抛出名称不存在的错误。

平台强制固定框架的核心原因

  • 降低判题系统复杂度:所有用户提交的代码结构完全统一,判题机不需要针对不同用户自定义的函数名、入口逻辑做适配,只需要按照固定路径调用即可,能大幅减少判题逻辑分支,避免因用户代码结构差异导致的误判。
  • 统一输入输出约定:每道题的参数类型、返回值类型都在框架里做了明确定义,比如这道链表题传入的参数是ListNode类型的链表节点对象,不是Python原生的列表类型。用户自己写的针对列表的len()、索引取值、extend()、insert()等操作,即便解决了类定义的报错,也会因为参数类型不匹配无法通过测试。
  • 减少无关逻辑干扰:固定框架提前预置了题目所需的数据结构定义、类型标注,用户不需要自行处理标准输入读取、输出格式化等和算法核心无关的逻辑,只需要专注实现解题逻辑即可。

本地运行正常是因为本地测试时是直接将Python原生列表作为参数传入独立函数,既没有走平台固定的类调用流程,也没有使用题目约定的链表数据结构,和平台的提交运行环境完全不一致,因此本地运行结果不能作为提交是否合规的判断依据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:30:55