Skip to content

Commit 575f1ca

Browse files
committed
add variadic args in ll constructor, typehint for eq
1 parent c3af296 commit 575f1ca

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

Python/chapter02/2.1 - Remove Dups/miguel_2.1_sol.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ def __init__(self, d: int):
1717

1818

1919
class LinkedList:
20-
def __init__(self, initial_value: int = None):
20+
def __init__(self, *numbers: int):
2121
self.head = None
2222
self.tail = None
23-
if initial_value is not None:
24-
self.head = Node(initial_value)
25-
self.tail = self.head
23+
for num in numbers:
24+
self.append_to_tail(num)
2625

2726
def append_to_tail(self, d: int) -> None:
2827
if self.head is None:
@@ -52,7 +51,9 @@ def __str__(self):
5251
ll.append(str(n.data))
5352
return ''.join(ll)
5453

55-
def __eq__(self, other):
54+
def __eq__(self, other: object):
55+
if not isinstance(other, LinkedList):
56+
return NotImplemented
5657
a = self.head
5758
b = other.head
5859
while a is not None and b is not None:
@@ -65,10 +66,7 @@ def __eq__(self, other):
6566

6667

6768
def build_linked_list(numbers: List[int]) -> LinkedList:
68-
ll = LinkedList()
69-
for num in numbers:
70-
ll.append_to_tail(num)
71-
return ll
69+
return LinkedList(*numbers)
7270

7371

7472
def remove_dups(ll: LinkedList) -> LinkedList:

0 commit comments

Comments
 (0)