题目
给定一个链表和数值x,使得所有小于x的链表在大于或等于x的链表之前
思路
从投到尾遍历链表,创建两个新链表,小的放一个,大的放一个,然后链接起来。
代码
def partition(link,num):
linkhead = link.head
rlink = Linkedlist()
llink = Linkedlist()
rlink_hand = rlink.head
rlink_node = rlink_hand
llink_head = llink.head
llink_node = llink_head
cur_node = linkhead.next
while cur_node is not None:
if cur_node.value < num:
rlink_node.next = cur_node
rlink_node = rlink_node.next
else:
llink_node.next = cur_node
llink_node = llink_node.next
cur_node = cur_node.next
pivot = Node(None,5)
rlink_node.next = pivot
pivot.next = llink_head.next
return rlink.head.next