Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, val):
- self.val = val
- self.next = None
- class SingleLinkedList:
- def __init__(self):
- self.start = None
- self.end = None
- def add(self, val):
- if self.start == None:
- self.start = Node(val)
- self.end = self.start
- else:
- self.end.next = Node(val)
- self.end = self.end.next
- def search(self, val):
- if self.start == None:
- return None
- node = self.start
- while(True):
- if node == None:
- break
- if node.val == val:
- return node.val
- node = node.next
- return None
- def remove(self, val):
- # step01 : search
- node = self.start
- node_target = None
- node_prev = None
- while(True):
- if node == None:
- break
- if node.val == val:
- node_target = node
- break
- node_prev = node
- node = node.next
- # step02 : delete
- if node_target == None:
- return
- if node_target == self.start:
- self.start = self.start.next
- else :
- # prev -> X -> latter
- node_prev.next = node_target.next
- if __name__ == "__main__":
- # initialize
- mylist = SingleLinkedList()
- # add O(1) - start
- mylist.add(9)
- # add O(1)
- mylist.add(11)
- mylist.add(2)
- mylist.add(98)
- mylist.add(35)
- # search O(n)
- val = mylist.search(98)
- # remove O(n)
- mylist.remove(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement