python链表快速排序

想基于对list进行快速排序的方法,对一个链表进行快速排序。但在实施的过程中不知道应该如何记录linked list中每一个node的类似角标(等价于方法中的ij),谢谢!

class Node:
    def __init__(self, value, next=None):
        self.value = value
        self.next = next

def quick_sort(head):
    if head is None or isinstance(head.next, Node):
        return head

    # 选择基准元素
    pivot = head.value

    # 将所有小于基准元素的节点放在基准元素的左侧
    left_head = Node(None)
    left_tail = left_head
    # 将所有大于基准元素的节点放在基准元素的右侧
    right_head = Node(None)
    right_tail = right_head
    # 将基准元素放在中间
    middle_head = Node(pivot)
    middle_tail = middle_head

    # 遍历链表,将节点分类
    node = head.next
    while node is not None:
        if node.value < pivot:
            left_tail.next = node
            left_tail = node
        elif node.value > pivot:
            right_tail.next = node
            right_tail = node
        else:
            middle_tail.next = node
            middle_tail = node
            node = node.next

    # 结束链表
    left_tail.next = None
    right_tail.next = None
    middle_tail.next = None

    # 递归地对左侧和右侧的子链表进行排序
    left_head = quick_sort(left_head)
    right_head = quick_sort(right_head)

    # 将所有部分合并在一起
    if left_head.value is None:
        left_head = middle_head
    else:
        left_tail.next = middle_head
    middle_tail.next = right_head

    return left_head

望采纳。