有人可以幫助我如何遍歷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
uj5u.com熱心網友回復:
要獲得您在問題末尾列出的輸出,您需要創建一個鏈接串列。例如,如果您定義以下類:
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]
uj5u.com熱心網友回復:
如評論中所述,您似乎將 alist
與 a混淆了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
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446700.html