Segregate even and odd nodes in a Linked List Python
- Get link
- X
- Other Apps
PROGRAM TO SEGREGATE EVEN AND ODD NODES IN A LINKED LIST
head = None # head of list # Node class class Node: # Function to initialise the node object def __init__(self, data): self.data = data # Assign data self.next =None # Function to segregate even and odd nodes. def segregateEvenOdd(): global head # Starting node of list having # even values. evenStart = None # Ending node of even values list. evenEnd = None # Starting node of odd values list. oddStart = None # Ending node of odd values list. oddEnd = None # Node to traverse the list. currNode = head while(currNode != None): val = currNode.data # If current value is even, add # it to even values list. if(val % 2 == 0): if(evenStart == None): evenStart = currNode evenEnd = evenStart else: evenEnd . next = currNode evenEnd = evenEnd . next # If current value is odd, add # it to odd values list. else: if(oddStart == None): oddStart = currNode oddEnd = oddStart else: oddEnd . next = currNode oddEnd = oddEnd . next # Move head pointer one step in # forward direction currNode = currNode . next # If either odd list or even list is empty, # no change is required as all elements # are either even or odd. if(oddStart == None or evenStart == None): return # Add odd list after even list. evenEnd . next = oddStart oddEnd . next = None # Modify head pointer to # starting of even list. head = evenStart ''' UTILITY FUNCTIONS '''''' Function to insert a node at the beginning '''def push(new_data): global head # 1 & 2: Allocate the Node & # Put in the data new_node = Node(new_data) # 3. Make next of new Node as head new_node.next = head # 4. Move the head to point to new Node head = new_node ''' Function to prnodes in a given linked list '''def printList(): global head node = head while (node != None): print(node.data, end = " ") node = node.next print() ''' Driver program to test above functions''' ''' Let us create a sample linked list as following 0.1.4.6.9.10.11 ''' push(11) push(10) push(9) push(6) push(4) push(1) push(0) print("Original Linked list") printList() segregateEvenOdd() print("Modified Linked list") printList()
OUTPUT
Origional Linked List 0 1 4 6 9 10 11 Modified Linked List 0 4 6 10 1 9 11
- Get link
- X
- Other Apps
Comments
Post a Comment