分区链表

题目

给定一个链表和数值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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值