我有这样的LinkedList
给出链接列表:1-> 2-> 3-> 4-> 5,
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
然后必须手动构建LinkedList。
head = ListNode(1)
node1 = ListNode(2)
node2 = ListNode(3)
node3 = ListNode(4)
node4 = ListNode(5)
head.next = node1
node1.next = node2
node2.next = node3
node3.next = node4
node4.next = None
是否可以自动化该过程,例如
for i in range(1, 6):
node(i-1) = ListNode(i) #made up the node(i-1)
答案 0 :(得分:1)
您可以通过以下方式将list
之类的可迭代对象转换为LinkedList:
def generate_linked_list(nums):
cur = dummy = ListNode(0)
for num in nums:
cur.next = ListNode(num)
cur = cur.next
return dummy.next
dummy
节点用于nums
为空的情况。
或以技巧的方式使用self
而不使用dummy
节点(如果它是类函数):
class LinkedList:
def generate_linked_list(self, nums):
cur = self
for num in nums:
cur.next = ListNode(num)
cur = cur.next
return self.next
用法:
head = generate_linked_list([1, 2, 3, 4, 5])