Skip to content

Instantly share code, notes, and snippets.

@sentinelleader
Forked from ptigas/gist:2820165
Created November 27, 2017 07:58
Show Gist options
  • Save sentinelleader/6f9c27a1ed495aa8568ce12c679902b5 to your computer and use it in GitHub Desktop.
Save sentinelleader/6f9c27a1ed495aa8568ce12c679902b5 to your computer and use it in GitHub Desktop.
linked list implementation in python
class Node :
def __init__( self, data ) :
self.data = data
self.next = None
self.prev = None
class LinkedList :
def __init__( self ) :
self.head = None
def add( self, data ) :
node = Node( data )
if self.head == None :
self.head = node
else :
node.next = self.head
node.next.prev = node
self.head = node
def search( self, k ) :
p = self.head
if p != None :
while p.next != None :
if ( p.data == k ) :
return p
p = p.next
if ( p.data == k ) :
return p
return None
def remove( self, p ) :
tmp = p.prev
p.prev.next = p.next
p.prev = tmp
def __str__( self ) :
s = ""
p = self.head
if p != None :
while p.next != None :
s += p.data
p = p.next
s += p.data
return s
# example code
l = LinkedList()
l.add( 'a' )
l.add( 'b' )
l.add( 'c' )
print l
l.remove( l.search( 'b' ) )
print
print l
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment