您的位置 首页 JAVA(2017)

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;
    }
}
看完了?留个评分呗?
[0人评了分,平均: 0/5]

本站原创文章皆遵循“署名-非商业性使用-相同方式共享 3.0 (CC BY-NC-SA 3.0)”。转载请保留以下标注:

原文来源:《LeetCode – 86. Partition List》

发表评论

电子邮件地址不会被公开。

返回顶部