Может ли кто-нибудь помочь мне с тем, как я могу пройти через приведенный ниже listnode в python. Я написал эту команду и получаю такие результаты.
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
Вы случайно не работаете над сайтом с вызовами кода? Они могут сделать преобразование из списка в связанный список за кулисами. Не совсем понятно, что вы здесь спрашиваете. Как list1=[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
Это не простой список. Это односвязный список. Можете ли вы сказать мне, как пройти через односвязный список?
list
, указанный в вопросе, является просто стандартным list
в python и является одним из основных типов данных (см. здесь: docs.python.org/3/tutorial/datastructures.html). singly-linked-list
отличается от этого, и ссылка в ответе указывает на его использование.
Чтобы получить вывод, который вы указали в конце своего вопроса, вам нужно создать связанный список. Например, если вы определяете следующий класс:
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]
односвязный список уже задан. Мне нужно пройти через него и распечатать значения в списке. Вы можете помочь мне с этим?
В вашем вопросе у вас нет данного связанного списка. У вас есть простой список [1,2,4]. Это та часть, которая не ясна в вашем вопросе. Я добавил раздел в свой ответ.
list1 - это просто список, поэтому вы перемещаетесь по нему по индексу. Я думаю, вы запутались с односвязными списками