data_structures.linked_list.kth_element_from_end

Classes

LinkedList

Node

Module Contents

class data_structures.linked_list.kth_element_from_end.LinkedList
__len__() int
>>> linked_list = LinkedList()
>>> len(linked_list)
0
>>> linked_list.add("a")
>>> len(linked_list)
1
>>> linked_list.add("b")
>>> len(linked_list)
2
__str__() str
>>> linked_list = LinkedList()
>>> linked_list.add(23)
>>> linked_list.add(14)
>>> linked_list.add(9)
>>> print(linked_list)
9 --> 14 --> 23
add(item: Any, position: int = 0) None

Add an item to the LinkedList at the specified position. Default position is 0 (the head).

Args:

item (Any): The item to add to the LinkedList. position (int, optional): The position at which to add the item.

Defaults to 0.

Raises:

ValueError: If the position is negative or out of bounds.

>>> linked_list = LinkedList()
>>> linked_list.add(1)
>>> linked_list.add(2)
>>> linked_list.add(3)
>>> linked_list.add(4, 2)
>>> print(linked_list)
3 --> 2 --> 4 --> 1

# Test adding to a negative position >>> linked_list.add(5, -3) Traceback (most recent call last):

ValueError: Position must be non-negative

# Test adding to an out-of-bounds position >>> linked_list.add(5,7) Traceback (most recent call last):

ValueError: Out of bounds >>> linked_list.add(5, 4) >>> print(linked_list) 3 –> 2 –> 4 –> 1 –> 5

kth_element_from_end(position: int) Any

Find the kth node element from the end of the Linked List. This is not a zero-based index search. If position=1, it will return the last element in the list.

>>> linked_list = LinkedList()
>>> linked_list.add(1)
>>> linked_list.add(2)
>>> linked_list.add(3)
>>> linked_list.add(4, 2)
>>> linked_list.add(5, 4)
>>> print(linked_list)
3 --> 2 --> 4 --> 1 --> 5
>>> linked_list.kth_element_from_end(2)
1
>>> linked_list.kth_element_from_end(5)
3
>>> linked_list.kth_element_from_end(3)
4
>>> linked_list.kth_element_from_end(10)
>>> linked_list.kth_element_from_end(0)
>>> linked_list.kth_element_from_end(-5)
head: Node | None = None
size = 0
class data_structures.linked_list.kth_element_from_end.Node
item: Any
next: Node | Any = None