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

    Example:

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

    题意

    把链表按前面的全是小于x的,后面的全是大于等于x的顺序重组

    题解

     1 class Solution {
     2 public:
     3     ListNode* partition(ListNode* head, int x) {
     4         ListNode*less = new ListNode(0),*lessh=less, *greater = new ListNode(0),*greaterh=greater;
     5         while (head) {
     6             ListNode*after = head->next;
     7             if (head->val < x) {
     8                 less->next = head;
     9                 less = less->next;
    10                 less->next = NULL;
    11             }
    12             else {
    13                 greater->next = head;
    14                 greater = greater->next;
    15                 greater->next = NULL;
    16             }
    17             head = after;
    18         }
    19         less->next = greaterh->next;
    20         return lessh->next;
    21     }
    22 };
    View Code

    我就总爱各种地方有漏洞……面的时候也差不多……惨

  • 相关阅读:
    第一次团队作业
    第二次结对作业
    动态代理与AOP
    笔试题
    java并发面试题(带答案)
    线程问题——同步和死锁
    java线程的方法
    java实现多线程的方法
    使用java闭锁实现并发
    Java多线程——同步问题
  • 原文地址:https://www.cnblogs.com/yalphait/p/10421638.html
Copyright © 2011-2022 走看看