Skip to content

Commit 91b44f2

Browse files
committed
Fix type annotations for linked_list/__init__.py
1 parent 224f854 commit 91b44f2

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

data_structures/linked_list/__init__.py

+10-7
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,31 @@
66
- Last node: points to null
77
"""
88

9-
from typing import Any
9+
from typing import Generic, Optional, TypeVar
1010

11+
T = TypeVar("T")
1112

12-
class Node:
13-
def __init__(self, item: Any, next: Any) -> None:
13+
14+
class Node(Generic[T]):
15+
def __init__(self, item: T, next: Optional["Node[T]"]) -> None:
1416
self.item = item
1517
self.next = next
1618

1719

18-
class LinkedList:
20+
class LinkedList(Generic[T]):
1921
def __init__(self) -> None:
20-
self.head = None
22+
self.head: Optional[Node[T]] = None
2123
self.size = 0
2224

23-
def add(self, item: Any) -> None:
25+
def add(self, item: T) -> None:
2426
self.head = Node(item, self.head)
2527
self.size += 1
2628

27-
def remove(self) -> Any:
29+
def remove(self) -> Optional[T]:
2830
if self.is_empty():
2931
return None
3032
else:
33+
assert self.head is not None
3134
item = self.head.item
3235
self.head = self.head.next
3336
self.size -= 1

0 commit comments

Comments
 (0)