有人能帮我如何在python中遍历下面给定的listnode吗。我已经编写了这个命令,并且正在得到这样的输出。
list1=[1,2,4]
命令:-
print(list1)
print(list1.val)
print(list1.next.val)
输出:-
ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 4, next: None}}}
1
2
要获得问题末尾列出的输出,您需要创建一个链表。例如,如果您定义以下类:
class ListNode:
def __init__(self, val, nxt=None):
self.val = val
self.next = nxt
def __repr__(self):
return f"ListNode{{val: {self.val}, next: {self.next}}}"
如果你定义list1
如下:
list1 = ListNode(1, ListNode(2, ListNode(4, None)))
然后;命令";将给出您列出的输出。
列表到链接列表
如果你想从列表[1,2,4]创建上面的链接列表,那么使用这个函数:
def createLinkedList(values):
head = None
for val in reversed(values):
head = ListNode(val, head)
return head
现在,您可以将纯列表转换为链接列表,如下所示:
list1 = createLinkedList([1,2,4])
将列表链接到列表
如果你想做相反的事情,从链接列表中创建一个标准列表,那么定义这个函数:
def linkedListIterator(head):
while head:
yield head.val
head = head.next
现在,如果你有一个链表,你可以把它传递给上面的函数。例如:
list1 = createLinkedList([1,2,4])
lst = list(linkedListIterator(list1))
lst
将是[1,2,4]
如注释中所述,您似乎混淆了list
和singly linked list
。
使用提供的列表,您只需迭代for loop
,如下所示:
list1=[1,2,4]
for L in list1:
print(L)
哪个输出:
1
2
4
有关链接列表,请参阅:https://www.tutorialspoint.com/python_data_structure/python_linked_lists.htm