zoukankan      html  css  js  c++  java
  • 【Leetcode】分隔链表

    题目链接:分隔链表


    题意:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。

    你应当保留两个分区中每个节点的初始相对位置


    题解:QAQ刚开始看题目看错了。以为是那种排序。要按大小的。写了一堆错的。然后重新看题,发现简单了不少啊。

    用两个链表分别放比x小的和比x大的,最后组合在一起就行了。。只要求保留相对位置


    代码:

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode* partition(ListNode* head, int x) {
    12         ListNode* big = new ListNode(0);
    13         ListNode* small = new ListNode(0);
    14 
    15         ListNode* pb = big;
    16         ListNode* ps = small;
    17         while(head){
    18             if(head->val < x){
    19                 ps->next = head;
    20                 ps = ps->next;
    21             }
    22             else{
    23                 pb->next = head;
    24                 pb = pb->next;
    25             }
    26             head = head->next;
    27         }
    28         
    29         ps->next = big->next;
    30         pb->next = NULL;
    31 
    32         return small->next;
    33     }
    34 };

    给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。

    你应当保留两个分区中每个节点的初始相对位置。

  • 相关阅读:
    如何去掉修改Joomla、joomlart及其模版版权、标志、图标的方法
    如何joomla修改版权信息
    嫌我的键盘的backspace太小,就尝试了一下改键工具--keyTweak
    css3 -- 过渡与动画
    css3 -- 2D变换
    css3 -- 渐变
    css3 -- 颜色与不透明度
    css3 -- 背景图处理
    css3 -- 多列
    css3 -- 文本
  • 原文地址:https://www.cnblogs.com/Asumi/p/12514527.html
Copyright © 2011-2022 走看看