【题目描述】


Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

You should preserve the original relative order of the nodes in each of the two partitions.

给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。

你应该保留两部分内链表节点原有的相对顺序。

【题目链接】

www.lintcode.com/en/problem/partition-list/

【题目解析】

可将整个链表先分离为两个小的链表。

我们建立less和greater,分别存储小于x的元素和不小于x的元素。遍历原链表,将其中的元素根据其val分别加入对应的链表。最后将less的最后一个元素与greater的链表头相连即可。

需要注意的是,若less链表为空,则应该返回greater链表的头。

【参考答案】

www.jiuzhang.com/solutions/partition-list/