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

    题意:

    给出一个链表和一个数字x,将链表分区,小于x的都放在大于等于x的前面,而且要保持每个分区内各结点的相对位置没有发生变化。

    比如原链表中,4在3的前面,3在5的前面,分区后依然要保持这个相对位置。

    过程:

    (1)新建两个链表,一个first,一个second,

    一个用来记录链表中所有小于x的结点,一个用于记录链表中所有大于等于x的结点。

    (2)遍历原链表。

    (3)最后将两个链表连接起来作为结果返回。

    public class Solution {
        public ListNode partition(ListNode head, int x) {
            if(head == null) return null;
            
            ListNode firstDummy = new ListNode(0);
            ListNode secondDummy = new ListNode(0);
            ListNode first = firstDummy, second = secondDummy;
            
            while(head != null){
                if(head.val < x){
                    first.next = head;
                    first = head;
                }else{
                    second.next = head;
                    second = head;
                }
                head = head.next;
            }
            
            first.next = secondDummy.next;
            second.next = null;
            return firstDummy.next;
        }
    }
  • 相关阅读:
    2014年最火的 21个JavaScript 框架
    20个2014年最优秀的PHP框架
    iOS App 研发的最后冲刺:内测与部署
    fir.im Weekly
    Jenkins + GitHub + fir-cli 一行命令从源码到fir.im
    一行命令 优化上传速度
    更新日志
    教你轻松看懂 iOS9 新功能
    fir.im Weekly
    好好干活
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5714433.html
Copyright © 2020-2023  润新知