Как распечатать связанный список в Python: итеративные и рекурсивные методы

Чтобы распечатать связанный список в Python, вы можете использовать следующие методы:

Метод 1: итеративный подход

class Node:
    def __init__(self, data=None):
        self.data = data
        self.next = None
class LinkedList:
    def __init__(self):
        self.head = None
    def add_node(self, data):
        new_node = Node(data)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next:
                current = current.next
            current.next = new_node
    def print_list(self):
        current = self.head
        while current:
            print(current.data)
            current = current.next

Метод 2: рекурсивный подход

class Node:
    def __init__(self, data=None):
        self.data = data
        self.next = None
class LinkedList:
    def __init__(self):
        self.head = None
    def add_node(self, data):
        new_node = Node(data)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next:
                current = current.next
            current.next = new_node
    def print_list_recursive(self, node):
        if node is None:
            return
        print(node.data)
        self.print_list_recursive(node.next)

Чтобы распечатать связанный список, сначала необходимо определить класс Nodeс атрибутом dataи атрибутом next, представляющим значение узла и ссылку на следующий узел соответственно. Затем вы создаете класс LinkedList, который имеет атрибут head, представляющий первый узел связанного списка.

В обоих методах вы можете добавлять узлы в связанный список с помощью метода add_node. Этот метод создает новый узел с заданными данными и добавляет его в конец связанного списка.

В методе 1 метод print_listвыполняет итерацию по связанному списку и печатает данные каждого узла.

В методе 2 метод print_list_recursiveиспользует рекурсию для печати данных каждого узла в связанном списке.