Partition List(将链表按照某个值分区)
题目描述:
给定一个链表的头结点和一个给定值k。将链表按照左侧的节点都小于k,中间的值等于k,右侧的值大于k的排列方式重新连接链表。对于链表各个分区的内部节点并没有要求有序,但是要求和原链表中的节点顺序一致。
例子:
9->0->4->5->1->NULL。给定的分区值为3的情况下,我们需要返回的链表为:0->1->9->5->4->NULL
解题思路:
主要的思路是我们定义3个分区链表,分别保存小于分区值、等于分区值和大于分区值3种。然后遍历链表不断的将链表的节点加入对应的分区链表中,最后再将三个分区链表连接即可。注意的地方有在连接三个分区的时候,需要考虑各个分区中可能是空的情况。
代码如下:
|
|