Python链表快速排序 求解答

python链表需使用快速排序输出ascending order结果,写完后找不到代码问题出在哪,求解答,感恩!

import random
class Node:
def init(self, element,pointer):
self.element = element
self.pointer = pointer

class SinglyLinkedList:
def init(self):
self.head = None
self.tail = None
self.size = 0

def  __len__(self):
    return self.size

def is_empty(self):
    return self.size == 0

def first(self):
    if self.is_empty():
        print("Queue is empty.")
    else:
        return self.head.element

def insert(self,data):
    node = Node(data,None)
    
    if self.is_empty():
        self.head = node
    else:
        self.tail.pointer = node
    self.tail = node
    self.size +=1

def remove(self):
    if self.is_empty():
        print("Queue is empty.")
    else:
        answer = self.head.element
        self.head = self.head.pointer
        self.size -=1
        if self.is_empty():
            self.tail = None
        return answer

def getData(self,i):
    count = -1
    p = self.head
    while count < i-1:
        p = p.pointer
        count+=1
    return p.element

def setData(self,i,element):
    count = -1
    p = self.head
    while count < i -1:
        p = p.pointer
        count+=1
    p.element = element

def swapData(self,i,j):
    mid = self.getData(j)
    self.setData(j,self.getData(i))
    self.setData(i,mid)

def quick_sort(self,node,size):
    if node != self.head:
        return "Invalid input!"
    else:
        if self.size == 1:
            return node
        elif self.size == 2:
            if node.element <= node.pointer.element:
                return node
            else:
                answer = node.element
                node.element = node.pointer.element
                node.pointer.element = answer
                return node
        else:
            i = 0
            j = self.size -1
            
            if i>=j:
                pass
            key = node.element
            
            while i<j:
                while i<j and self.getData(j)>=key:
                    j =j-1
                self.swapData(i,j)
                
                while i<j and self.getData(i)<=key:
                    i= i+1
                self.swapData(j,i)    
            self.setData(i,key)       

            self.quick_sort(0, i-1)
            self.quick_sort(j+1, self.size -1)

img

报错如下:
-17
-44
-14
-44
-8
-11
-42
-42
-19
-31
-45
-44
-30
-24
-7
47
70
82
98
52
61
11
9
18
59
75
51
8
39
50
6
80
89
60
66
33
41
29
40
2
87
12
-7
9
99
28
90
-3
84
83