Skip to content

Commit e4d90e2

Browse files
authored
change space complexity of linked list's __len__ from O(n) to O(1) (#8183)
1 parent dc4f603 commit e4d90e2

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

data_structures/linked_list/circular_linked_list.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def __iter__(self) -> Iterator[Any]:
2424
break
2525

2626
def __len__(self) -> int:
27-
return len(tuple(iter(self)))
27+
return sum(1 for _ in self)
2828

2929
def __repr__(self):
3030
return "->".join(str(item) for item in iter(self))

data_structures/linked_list/doubly_linked_list.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def __len__(self):
5151
>>> len(linked_list) == 5
5252
True
5353
"""
54-
return len(tuple(iter(self)))
54+
return sum(1 for _ in self)
5555

5656
def insert_at_head(self, data):
5757
self.insert_at_nth(0, data)

data_structures/linked_list/merge_two_lists.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def __len__(self) -> int:
4444
>>> len(SortedLinkedList(test_data_odd))
4545
8
4646
"""
47-
return len(tuple(iter(self)))
47+
return sum(1 for _ in self)
4848

4949
def __str__(self) -> str:
5050
"""

data_structures/linked_list/singly_linked_list.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def __len__(self) -> int:
7272
>>> len(linked_list)
7373
0
7474
"""
75-
return len(tuple(iter(self)))
75+
return sum(1 for _ in self)
7676

7777
def __repr__(self) -> str:
7878
"""

0 commit comments

Comments
 (0)