zoukankan      html  css  js  c++  java
  • Leetcode-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.

    Analysis:

    The first element that is not less than x is the point of partition. We record this node and its predecessor. Once we encount a node that is less than x later, we insert it between the point and its predecessor, then update the predecssor to this node.

    Solution:

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) {
     7  *         val = x;
     8  *         next = null;
     9  *     }
    10  * }
    11  */
    12 public class Solution {
    13     public ListNode partition(ListNode head, int x) {
    14         if (head==null || head.next==null) return head;
    15         
    16         ListNode preHead = new ListNode(0);
    17         preHead.next = head;
    18         ListNode end = preHead;
    19         ListNode cur = head;
    20         
    21         while (cur!=null && cur.val<x){
    22             end = cur;
    23             cur = cur.next;
    24         }
    25         
    26         while (cur!=null && cur.next!=null){
    27             if (cur.next.val>=x){
    28                 cur = cur.next;
    29             } else {
    30                 ListNode temp = cur.next;
    31                 cur.next = temp.next;
    32                 temp.next = end.next;
    33                 end.next = temp;
    34                 end = temp;
    35             }
    36         }
    37         
    38         return preHead.next;
    39     }
    40 }
  • 相关阅读:
    uni-app快速上手
    uni-app快速上手
    什么是uni-app?
    什么是uni-app?
    美颜小程序准备
    美颜小程序准备
    vue的基本使用
    vue的基本使用
    Web前端开发(高级)下册-目录
    Web前端开发(高级)下册-目录
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4100959.html
Copyright © 2011-2022 走看看