leetcode如何分隔链表
本篇内容主要讲解“leetcode如何分隔链表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“leetcode如何分隔链表”吧!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、网络空间、营销软件、网站建设、舟山网站维护、网站推广。
一、题目内容
给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。
你应当保留两个分区中每个节点的初始相对位置。
示例:
输入:head = 1->4->3->2->5->2, x = 3
输出:1->2->2->4->3->5
二、解题思路
创建两个链表,一个存放小于x的,一个存放大于x的,顺序不动,最后将两个链表进行拼接即可。
三、代码
# Definition for singly-linked list. class ListNode: def __init__(self, x): self.val = x self.next = None def __repr__(self): return str(self.val) class Solution: def partition(self, head: ListNode, x: int) -> ListNode: if not head: return head head1 = ListNode(0) head2 = ListNode(0) cur1 = head1 cur2 = head2 while head: if head.val < x: cur1.next = head head = head.next cur1 = cur1.next cur1.next = None else: cur2.next = head head = head.next cur2 = cur2.next cur2.next = None cur1.next = head2.next return head1.next if __name__ == '__main__': s = Solution() head_list = [1, 4, 3, 2, 5, 2] head = ListNode(head_list[0]) cur = head for i in range(1, len(head_list)): cur.next = ListNode(head_list[i]) cur = cur.next x = 3 ans = s.partition(head, x) print(ans)
到此,相信大家对“leetcode如何分隔链表”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
网站标题:leetcode如何分隔链表
文章出自:http://myzitong.com/article/ppsjpg.html