如何在此类中使用python创建链表
我在Leetcode中看到一个链表类定义:如何在此类中使用python创建链表,python,python-3.x,linked-list,Python,Python 3.x,Linked List,我在Leetcode中看到一个链表类定义: class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = None 我不知道如何使用它,我想找出两种方法: 首先: 如果我想一步一步地创建一个链表1->3->5,如何创建?我的想法是: p1 = ListNode(1) p2 = ListNode(3) p3 = ListNode(5)
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = None
我不知道如何使用它,我想找出两种方法:
首先:
如果我想一步一步地创建一个链表1->3->5,如何创建?我的想法是:
p1 = ListNode(1)
p2 = ListNode(3)
p3 = ListNode(5)
p2 = p1.next
p3 = p1.next.next
print(p1.val) #however it shows p1 doesn't have next attr...
其次,如果我有一个链表,比如:
l1 = ListNode([1, 2, 4, 6])
如何一步一步地获得每个值?
我试着说:
print(l3.next)
print(l3.next.next)#maybe just some false idea...
构造函数错误:它将
self.next
设置为None
,而不是next
。让我们解决这个问题:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
现在我们可以创建一个包含三个节点的列表。由于这是一个单独链接的转发列表,我们需要从后面开始:
p3 = ListNode(3)
p2 = ListNode(2, p3)
p1 = ListNode(1, p2)
print(p1.next.next.val) # 3
或者,要从列表生成链接列表,请执行以下操作:
def from_list(lst) -> ListNode:
node = None
for item in lst[::-1]:
node = ListNode(item, node)
return node
x = from_list([1, 2, 3, 4])
print(x.next.next.next.val) # 4