View difference between Paste ID: i8gnGDV3 and P412JcAf
SHOW: | | - or go back to the newest paste.
1
# Node class 
2
class Node: 
3
4
	# Function to initialize the node object 
5
	def __init__(self, data): 
6
		self.data = data # Assign data 
7
		self.next = None # Initialize next as null 
8
9
# Linked List class 
10
class LinkedList: 
11
	
12
	# Function to initialize the Linked List object 
13
	def __init__(self): 
14
		self.head = None
15
	def print_linkedlist(self): 
16
		nodes = []
17
		node = self.head
18
		while node: 
19
			nodes.append(node.data)
20
			node = node.next
21
		nodes.append('None')
22
		print('->'.join(nodes))
23
24
one = Node("1")
25
two = Node('2')
26
three = Node('3')
27
llist = LinkedList()
28
llist.head = one
29
one.next = two
30
two.next = three
31
32
def push(self, new_data): 
33
34
	# 1 & 2: Allocate the Node & 
35
	#	 Put in the data 
36
	new_node = Node(new_data) 
37
		
38
	# 3. Make next of new Node as head 
39
	new_node.next = self.head 
40
		
41
	# 4. Move the head to point to new Node 
42
	self.head = new_node
43
44
def insertLast(self, new_data): 
45
    #create a new node
46
    new_node = Node(new_data)
47
    
48
    #if linkedlist is empty, make the new node as head
49
    if self.head is None: 
50
        self.head = new_node
51
        return 
52
    #else traverse till the last node
53
    last = self.head
54
    while (last.next): 
55
        last = last.next
56
        
57
    #change the next of last node
58-
    last.next = new_node
58+
    last.next = new_node
59
60
61
def del_node(self, data_to_del): 
62
    #store head node
63
    node = self.head
64
    
65
    #if head node itself hold the key to be deleted
66
    if node is not None: 
67
        if node.data== data_to_del: 
68
            self.head = node.next
69
            node = None
70
            return
71
    
72
    # search for the data to be deleted, keep track of 
73
    # the prev_node as we need to change 'prev.next'
74
    
75
    while node is not None: 
76
        if node.data ==data_to_del: 
77
            break
78
        prev_node = node
79
        node = node.next
80
    
81
    #if key was not present in Linked list
82
    if node == None: 
83
        return
84
    
85
    #unlink the node from linked list
86
    prev_node.next = node.next
87
    node = None