LeetCode – 86. 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.

又是一道一眼望到底的题目,但是操作起来又是很多陷阱。我发现很多linkedlist题目都是这样

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode partition(ListNode head, int x) {
        ListNode large = new ListNode(0);
        ListNode small = new ListNode(0);
        ListNode currl = large;
        ListNode currs = small;
        while(head !=null){
            if(head.val <x){
                currl.next = head;
                currl = currl.next; 
            }
            else{
                currs.next = head;
                currs = currs.next;
            }
            head = head.next;
        }
        currs.next = null;
        currl.next = small.next;
        return large.next;
    }
}

This site Original article All followed" Attribution—NonCommercial—ShareAlike 4.0 (CC BY-NC-SA 4.0) ”。 Please keep the following marks for sharing and interpretation:

Original author: Jake Tao Source: 「LeetCode – 86. Partition List」

Praise 204
0 0 204

Further reading

Post a reply

Log in can only be commented on later
Share this page
Back to top