Rearrange linked list in sorted order in python
Python program for Rearrange linked list in sorted order. Here problem description and explanation.
# Python 3 program for
# Rearrange linked list in increasing (Sorted) order
# Linked list node
class LinkNode :
def __init__(self, data) :
self.data = data
self.next = None
class SingleLL :
def __init__(self) :
self.head = None
# Add new node at the end of linked list
def insert(self, value) :
# Create node
node = LinkNode(value)
if (self.head == None) :
self.head = node
else :
temp = self.head
# Find last node
while (temp.next != None) :
# Visit to next node
temp = temp.next
# Add node at last position
temp.next = node
# Display all Linked List elements
def display(self) :
if (self.head != None) :
temp = self.head
while (temp != None) :
# Display node value
print(" ", temp.data, end = " ")
# Visit to next node
temp = temp.next
else :
print("Empty Linked list")
def arrange(self, element) :
if (self.head == None) :
self.head = element
elif (self.head.data >= element.data) :
element.next = self.head
self.head = element
else :
temp = self.head
# Finding location of inserting nodes
while (temp.next != None and
temp.next.data < element.data) :
# Visit to next node
temp = temp.next
element.next = temp.next
temp.next = element
def sortElement(self) :
if (self.head == None) :
return
temp = self.head
hold = None
self.head = None
# iterate linked list nodes and add in sorted order
while (temp != None) :
hold = temp
# Visit to next node
temp = temp.next
hold.next = None
# Logic to add node
self.arrange(hold)
def main() :
sll = SingleLL()
# Linked list sll1
# 3 → 5 → 2 → 1 → 6 → 4 → -3 → NULL
sll.insert(3)
sll.insert(5)
sll.insert(2)
sll.insert(1)
sll.insert(6)
sll.insert(4)
sll.insert(-3)
print("Before Sort")
# Display all node
sll.display()
print("\nAfter Sort")
# -3 → 1 → 2 → 3 → 4 → 5 → 6 → NULL
sll.sortElement()
# Display all node
sll.display()
if __name__ == "__main__": main()

Output
Before Sort
3 5 2 1 6 4 -3
After Sort
-3 1 2 3 4 5 6
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment