DEV Community

Tanuja V
Tanuja V

Posted on • Edited on

6 1 2 1

Partition List | LeetCode | Java

Algorithm

  1. Initialize two dummy nodes: lessHead and highHead to serve as heads for two separate lists, one for nodes with values less than x and one for nodes with values greater than or equal to x.
  2. Initialize pointers less and high to keep track of the tail of the two lists respectively.
  3. Iterate through the original linked list (head) using a temporary pointer temp.
  4. For each node in the original list:
    • If the value of the current node (temp.val) is less than x, append it to the less list.
    • If the value of the current node is greater than or equal to x, append it to the high list.
  5. Connect the tail of the less list to the head of the high list.
  6. Return the head of the less list, which now contains the partitioned linked list.

Code

class Solution {
    public ListNode partition(ListNode head, int x) {

        ListNode lessHead = new ListNode(0);
        ListNode highHead = new ListNode(0);

        ListNode less = lessHead, high = highHead;

        ListNode temp = head;

        while(temp!=null){
            if(temp.val<x){
                less.next = new ListNode(temp.val);
                less = less.next;
            }
            else{
                high.next = new ListNode(temp.val);
                high = high.next;
            }
            temp = temp.next;
        }

        less.next = highHead.next;

        return lessHead.next;
    }
}
Enter fullscreen mode Exit fullscreen mode

Thanks for reading :)
Feel free to comment and like the post if you found it helpful
Follow for more 🤝 && Happy Coding 🚀

If you enjoy my content, support me by following me on my other socials:
https://linktr.ee/tanujav7

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more