【发布时间】:2021-06-23 04:28:42
【问题描述】:
我正在尝试调用/打印以下链接列表:
#--the following code is taken from the most upvoted solution at codesignal--
class ListNode(object):
def __init__(self, x):
self.value = x
self.next = None
def removeKFromList(l, k):
c = l
while c:
if c.next and c.next.value == k:
c.next = c.next.next
else:
c = c.next
return l.next if l and l.value == k else l
我想用l = [3, 1, 2, 3, 4, 5] and k = 3 调用/实例化这个类,我期待它返回=> [1, 2, 4, 5]
基本上,我无法先实例化ListNode 类,然后在其中调用removeKFromList 方法。
您可以在以下位置找到此挑战:https://app.codesignal.com/interview-practice/task/gX7NXPBrYThXZuanm/description
说明:
注意:尝试使用 O(1) 额外空间在 O(n) 时间内解决此任务,其中 n 是列表中元素的数量,因为这是在面试中要求你做的事情。
给定一个整数 l 和一个整数 k 的单链表,从列表 l 中删除所有值等于 k 的元素。
示例
对于
l = [3, 1, 2, 3, 4, 5]和k = 3,输出应该是removeKFromList(l, k) = [1, 2, 4, 5]对于
l = [1, 2, 3, 4, 5, 6, 7]和k = 10,输出应该是removeKFromList(l, k) = [1, 2, 3, 4, 5, 6, 7]输入/输出
执行时间限制:4秒(py3)
输入:
linkedlist.integer l一个整数的单链表。
保证约束:
- 0 ≤ 列表大小 ≤ 105,
- -1000 ≤ 元素值 ≤ 1000。
输入:
integer k一个整数。
保证约束:
- -1000 ≤ k ≤ 1000。
输出:
linkedlist.integer返回
l并删除所有等于k的值。
【问题讨论】:
-
“我不能”是什么意思?你试过什么?
-
从字面上看,我想用一些 INPUT 测试它,我想得到一些 OUTPUT
-
你认为应该使用什么函数将 Python 列表转换为
ListNodes 的链表? (提示:你还没有尝试编写这样的函数。) -
这能回答你的问题吗? Python Linked List
-
这是一个挑战。要求我们为您提供解决方案是作弊。
标签: python class linked-list call instantiation