python - 为什么这个递归函数调用需要'self'
问题描述
这是我对反向链表问题的解决方案。我不明白为什么当我reverseList(head.next)
在函数中调用时,除非我包含self
#Recursive Solution
def reverseList(self, head: ListNode) -> ListNode:
if not head or not head.next:
return head
p = self.reverseList(head.next)
head.next.next = head
head.next = None
return p
没有自我的错误
NameError: name 'reverseList' is not defined
p = reverseList(head.next)
Line 22 in reverseList (Solution.py)
ret = Solution().reverseList(param_1)
Line 45 in _driver (Solution.py)
_driver()
Line 56 in <module> (Solution.py)
有什么建议么?
解决方案
因为它是一个类的方法,而第一个参数是指该类的实例。
根本不清楚为什么它是一种方法,因为它反转了一个与自身不同的列表,并且除了该方法之外不使用任何它自己的属性。
这也应该起作用:
def reverseList(head: ListNode) -> ListNode:
if not head or not head.next:
return head
p = reverseList(head.next)
head.next.next = head
head.next = None
return p
推荐阅读
- python - 没有名为“object_detection”的模块
- javascript - 编程到 2D Array 复杂对齐
- android - 当片段更改时计时器重置,add() 将片段堆叠在一起
- java - 在枚举类中,如何将值转换为日期?
- javascript - 选择相同类型元素的每第 n 个,但不在同一个父元素中
- wordpress - 如何通过 ACF 字段过滤 BuddyPress 成员循环?
- struct - 用一个在 Rust 中返回元组的函数初始化两个结构成员
- mongodb - 使用 mongodb 展平父子集合
- javascript - fs 写入 csv 不使用 for 循环写入
- reactjs - Reactjs onPointer 事件在移动浏览器上无法正常运行