In this post, we are going to solve the **Partition List** **Leetcode Solution** problem of **Leetcode**. This Leetcode problem is done in many programming languages like C++, Java, and Python.

**Problem**

Given the `head`

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

**Example 1:**

Input:head = [1,4,3,2,5,2], x = 3Output:[1,2,2,4,3,5]

**Example 2:**

Input:head = [2,1], x = 2Output:[1,2]

**Constraints:**

- The number of nodes in the list is in the range
`[0, 200]`

. `-100 <= Node.val <= 100`

`-200 <= x <= 200`

Now, let’s see the leetcode solution of **Partition List****Leetcode Solution**.

**Partition List** **Leetcode Solution in Python**

class Solution: def partition(self, head: ListNode, x: int) -> ListNode: beforeHead = ListNode(0) afterHead = ListNode(0) before = beforeHead after = afterHead while head: if head.val < x: before.next = head before = head else: after.next = head after = head head = head.next after.next = None before.next = afterHead.next return beforeHead.next

**Partition List Leetcode Solution** **in CPP**

class Solution { public: ListNode* partition(ListNode* head, int x) { ListNode beforeHead(0); ListNode afterHead(0); ListNode* before = &beforeHead; ListNode* after = &afterHead; for (; head; head = head->next) if (head->val < x) { before->next = head; before = head; } else { after->next = head; after = head; } after->next = nullptr; before->next = afterHead.next; return beforeHead.next; }; };

**Partition List Leetcode Solution in Java**

class Solution { public ListNode partition(ListNode head, int x) { ListNode beforeHead = new ListNode(0); ListNode afterHead = new ListNode(0); ListNode before = beforeHead; ListNode after = afterHead; for (; head != null; head = head.next) if (head.val < x) { before.next = head; before = head; } else { after.next = head; after = head; } after.next = null; before.next = afterHead.next; return beforeHead.next; } }

**Note:** This problem ** Partition List** is generated by

**Leetcode**but the solution is provided by

**Chase2learn**This tutorial is only for Educational and Learning purposes.