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

    Input: head = 1->4->3->2->5->2, x = 3
    Output: 1->2->2->4->3->5

    题意:

    给定一个链表和一个值,把小于等于和大于该值的部分分别放到链表的一前一后去。

    思路:

    先分为两个链表

    然后合并

    代码:

     1 class Solution {
     2     public ListNode partition(ListNode head, int x) {
     3         ListNode leftDummy = new ListNode(-1);
     4         ListNode rightDummy = new ListNode (-1);    
     5         ListNode left_cur = leftDummy;
     6         ListNode right_cur = rightDummy; 
     7         ListNode cur = head;
     8         
     9         while( cur != null){
    10             if(cur.val < x){
    11                 left_cur.next = cur;
    12                 left_cur = cur;
    13             }else{
    14                 right_cur.next = cur;
    15                 right_cur = cur;
    16             }
    17             cur = cur.next;    
    18         }
    19        left_cur.next = rightDummy.next;
    20        right_cur.next = null;
    21        return leftDummy.next;       
    22     }

     

  • 相关阅读:
    浮动 float
    display属性和特性
    盒子阴影
    内边距
    外边距
    边框
    网页背景
    猴子补丁
    设计模式创造者模式--python
    Go语言:validator库对请求参数校验
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9227167.html
Copyright © 2020-2023  润新知