Sha256: c94df53a975294d239092c549d97cb16b991a33a910df7efb3cbae17e867a254

Contents?: true

Size: 1.22 KB

Versions: 90

Compression:

Stored size: 1.22 KB

Contents

class Node(object):
    def __init__(self, value, next=None, prev=None):
        self.value = value
        self.next = next
        self.prev = prev


class LinkedList(object):
    def __init__(self):
        self.head = None
        self.tail = None

    def push(self, value):
        new_node = Node(value)
        if not self.head:
            self.head = self.tail = new_node
        else:
            new_node.prev = self.tail
            self.tail.next = new_node
            self.tail = new_node

    def pop(self):
        node = self.tail
        if node is None or node.prev is None:
            self.head = self.tail = None
        else:
            self.tail = self.tail.prev
            self.tail.next = None
        return node.value

    def shift(self):
        node = self.head
        if node is None or node.next is None:
            self.head = self.tail = None
        else:
            self.head = self.head.next
            self.head.prev = None
        return node.value

    def unshift(self, value):
        new_node = Node(value)
        if not self.head:
            self.head = self.tail = new_node
        else:
            new_node.next = self.head
            self.head.prev = new_node
            self.head = new_node

Version data entries

90 entries across 90 versions & 1 rubygems

Version Path
trackler-2.0.8.1 tracks/python/exercises/linked-list/example.py
trackler-2.0.7.0 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.44 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.43 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.42 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.41 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.40 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.39 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.38 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.37 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.36 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.35 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.34 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.33 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.32 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.31 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.30 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.29 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.28 tracks/python/exercises/linked-list/example.py
trackler-2.0.6.27 tracks/python/exercises/linked-list/example.py