链表快排
对一个单链表用快排的方式排序
快排的关键在于partition函数,因为单链表是不能倒序遍历的,因此不能通过头尾双指针向内夹的partition函数,而是用都是从头开始的双指针方式,具体的两种partition函数可以参考:快排的两种partition函数
这里链表快排和数组快排partition函数中关键的不同点在于:partition函数中遍历结束的方式,和递归结束的方式
# 链表快排
class Node:
def __init__(self, val):
self.val = val
self.next = None
def bulid_list(data_list):
head = Node(0)
cur = head
for val in data_list:
cur.next = Node(val)
cur = cur.next
return head.next
def print_list(root)