> For the complete documentation index, see [llms.txt](https://wentao-shao.gitbook.io/leetcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wentao-shao.gitbook.io/leetcode/linked-list/86.partition-list.md).

# 86.Partition-List

## 86. Partition List

## 题目地址

<https://www.lintcode.com/problem/partition-list/>

## 题目描述

```
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.

For example,
Given 1->4->3->2->5->2 and x = 3,
return 1->2->2->4->3->5.
```

## 代码

```java
public class Solution {
    public ListNode partition(ListNode node, int x) {
    ListNode leftDummy = new ListNode(0);
    ListNode leftCurr = leftDummy;
    ListNode rightDummy = new ListNode(9);
    ListNode rightCurr = rightDummy;

    ListNode runner = node;
    while (runner != null) {
      if (runner.val < x) {
        leftCurr.next = runner;
        letCurr = leftCurr.next;
      } else {
        rightCurr.next = runner;
        rithCurr = rightCurr.next;
      }
      runner = runner.next;
    }

    rightCurr.next = null;
    leftCurr.next = rightDummy.next;

    return leftDummy.next;
  }
}
```
