糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 小黑leetcode之旅:86. 分隔链表

小黑leetcode之旅:86. 分隔链表

时间:2018-08-28 17:13:28

相关推荐

小黑leetcode之旅:86. 分隔链表

小黑做法:硬做

# Definition for singly-linked list.# class ListNode:#def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution:def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:# 添加辅助结点head = ListNode(next = head)# 前指针pre_linkpre_link = head# 后指针linklink = head.next# 辅助数组temp_arr = []# 两个指针不停地移动while link:# 出现大于等于x的数字时停止if link.val >= x:breaklink = link.nextpre_link = pre_link.next# 前指针a_link指向第一个大于等于x的数a_link= pre_link.next# 如果没有大于等于x的数字则直接返回if not link:return head.next# 后指针b_linkb_link = link.nextarr = []while b_link:# 小于x的数字放入arr,并在链表中删除if b_link.val < x:arr.append(b_link)a_link.next = b_link.nextelse:a_link = a_link.nextb_link = b_link.next# arr中元素插入到pre_link后link_arr = pre_linkfor node in arr:link_arr.next = nodelink_arr = link_arr.nextlink_arr.next = linkreturn head.next

模拟法

# Definition for singly-linked list.# class ListNode:#def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution:def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:# 小结点small_head = ListNode()small = small_head# 大结点big_head = ListNode()big = big_headwhile head:if head.val x:small.next = headsmall = small.nextelse:big.next = headbig = big.nexthead = head.nextsmall.next = big_head.nextbig.next = Nonereturn small_head.next

小黑生活

下午要去朝阳公园跑步,喝喜茶!!!

如果觉得《小黑leetcode之旅:86. 分隔链表》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。