return the right sub list head reference return rightlist merges two sorted linked listreturns head reference for the new list def _mergelinkedlistssublistasublistb )create dummy node and insert it at the front of the list newlist listnodenone newtail newlist append nodes to the new list until one list is empty while sublista is not none and sublistb is not none if sublista data <sublistb data newtail next sublista sublista sublista next else newtail next sublistb sublistb sublistb next newtail newtail next newtail next none if self list contains more termsappend them if sublista is not none newtail next sublista else newtail next sublistb return the new merged listwhich begins with the first node after the dummy node return newlist next the linked list is recursively subdivided into smaller linked lists during each recursive callwhich are then merged back into new ordered linked list since the nodes are not contained within single object as the elements of an array arethe head reference of the new ordered list has to be returned after the list is sorted to sort linked list using the merge sort algorithmthe sort function would be called using the statementthelist llistmergesortthelist the implementation in listing includes the recursive function and two helper functions you will note that wrapper function is not required with this version since the recursive function only requires the head reference of the list being sorted as the single argument splitting the list the split operation is handled by the splitlinkedlist(helper functionwhich takes as an argument the head reference to the singly linked list to be split and returns the head reference for the right sublist the left sublist can still be referenced by the original head reference to split linked listwe need to know the