class Stack: def __init__(self): self.items = LinkedList() def push(self, value): """ Adds the value to the back of the LinkedList :param value: the value to be added """ self.items.add(value) def pop(self): """ Removes the value at the tail :return: the value of the item removed """ if self.items.tail is None: return None value = self.items.tail.value self.items.remove(value) return value def peek(self): """ :returns: the value of the item at the tail """ if not self.items.tail: return None return self.items.tail.value
def init_set(self, size: int) -> None: self.size: int = size self.representative: List[int] = [] self.linked_lists: List[LinkedList] = [] for e in range(size): self.representative.append(e) l = LinkedList(e) self.linked_lists.append(l)
def makeset(self, element: int) -> None: self.representative[element] = element self.linked_lists[element] = LinkedList(element)
def setUp(self) -> None: self.linked_list = LinkedList()
class TestLinkedList(unittest.TestCase): def setUp(self) -> None: self.linked_list = LinkedList() def tearDown(self) -> None: del self.linked_list def test_list(self): self.assertEqual(self.linked_list.is_empty(), True) self.linked_list.append(5) self.assertEqual(self.linked_list.is_empty(), False) self.assertEqual(self.linked_list.head.value, 5) self.linked_list.append(10) self.linked_list.append(15) self.linked_list.delete_with_value(10) self.assertEqual(self.linked_list.head.next_node.value, 15) self.linked_list.prepend(2) self.assertEqual(self.linked_list.head.value, 2) self.linked_list.delete_with_value(2) self.assertEqual(self.linked_list.head.value, 5)
length += 1 p = p.next result = [None] * k per_size = length // k padding = length % k p = root i = 0 while p: result[i] = p i += 1 size = per_size + 1 if padding > 0 else per_size prev = None while size > 0: prev = p p = p.next size -= 1 padding -= 1 prev.next = None return result if __name__ == '__main__': s = Solution() print(s.splitListToParts(root=LinkedList([1, 2, 3]).node, k=5)) # [[1],[2],[3],[],[]] print( s.splitListToParts(root=LinkedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).node, k=3)) # [[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]]
from data_structure.linked_list import LinkedList, Element # solution to the problem def main(listOne, listTwo): l1 = listOne.print_list() l2 = listTwo.print_list() for i in l1: if i in l2: return i return None listOne = LinkedList() listTwo = LinkedList() e1 = Element(99) e2 = Element(1) e3 = Element(8) e4 = Element(10) m1 = Element(3) m2 = Element(7) m3 = Element(8) m4 = Element(10) listOne.append(e1) listOne.append(e2) listOne.append(e3)
def __init__(self): self.items = LinkedList()