Pythonで連結リストの先頭に要素を追加する方法


Pythonで連結リストを実装するためには、ノードを表すクラスを定義する必要があります。以下に、基本的な連結リストの実装例を示します。

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None
class LinkedList:
    def __init__(self):
        self.head = None
    def add_to_beginning(self, data):
        new_node = Node(data)
        new_node.next = self.head
        self.head = new_node

上記のコードでは、NodeクラスとLinkedListクラスを定義しています。Nodeクラスは、データ要素と次のノードへの参照を持つオブジェクトです。LinkedListクラスは、連結リストの先頭ノードを保持するhead属性を持ちます。

add_to_beginningメソッドは、新しいノードを作成し、その次のノードを現在の先頭ノードに設定し、新しいノードを先頭ノードとして設定します。これにより、要素が連結リストの先頭に追加されます。

以下は、連結リストに要素を追加する具体的な例です。

# 空の連結リストを作成
linked_list = LinkedList()
# 要素を追加
linked_list.add_to_beginning(3)
linked_list.add_to_beginning(2)
linked_list.add_to_beginning(1)
# 連結リストの要素を表示
current = linked_list.head
while current:
    print(current.data)
    current = current.next

上記のコードを実行すると、以下の結果が得られます。

1
2
3

このように、add_to_beginningメソッドを使用することで、Pythonで連結リストの先頭に要素を追加することができます。