【发布时间】:2020-11-21 00:41:16
【问题描述】:
我正在尝试以递归方式将单链表转换为整数列表。我试图编写一个函数,但它没有按我的预期工作。
该函数应该接受像Node(1, Node(2, None)) 这样的列表,并且应该返回像[1, 2] 这样的整数列表。
我试图编写下面的函数,但我得到的输出是[1]。我不确定我哪里出错了,因为我对递归很陌生。
def linked(items: Optional[Cell]) -> List[int]:
if items is None:
return None
elif items.next is not None:
list_int = []
list_int.append(items.data)
linked(items.next)
return list_int
这是 Cell 的类定义:
class Cell:
data: int
next: Optional[Cell]
def __init__(self, data: int, next: Optional[Cell]):
"""Constructs a singly linked list."""
self.data = data
self.next = next
***编辑得更加专注和清晰
【问题讨论】:
-
请从intro tour 重复on topic 和how to ask。 Stack Overflow 和网上其他地方有许多示例,向您展示如何在递归过程中累积结果。我们希望您在此处发布之前搜索并使用这些资源。
-
首先,不要调用你的函数
list,因为那样你就不再看到内置列表了。
标签: python list recursion singly-linked-list