原题链接: http://oj.leetcode.com/problems/partition-list/ 
这是一道链表操作的题目,要求把小于x的元素按顺序放到链表前面。我们仍然是使用链表最经常使用的双指针大法,一个指向当前小于x的最后一个元素,一个进行往前扫描。假设元素大于x,那么继续前进,否则,要把元素移到前面,并更新第一个指针。这里有一个小细节,就是假设不须要移动(也就是已经是接在小于x的最后元素的后面了),那么仅仅须要继续前进就可以。算法时间复杂度是O(n),空间仅仅须要几个辅助变量,是O(1)。代码例如以下:

public ListNode partition(ListNode head, int x) {if(head == null)return null;ListNode helper = new ListNode(0);helper.next = head;ListNode walker = helper;ListNode runner = helper;while(runner.next!=null){if(runner.next.val<x){if(walker!=runner){ListNode next = runner.next.next;runner.next.next = walker.next;walker.next = runner.next;runner.next = next;}elserunner = runner.next;walker = walker.next;}else{runner = runner.next;}}return helper.next;
}

这道题思路比較清晰,只是还是有点细节的,第一次写可能不easy全然写对,能够练习练习。

Partition List -- LeetCode相关推荐

  1. LeetCode 解题报告索引

    最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中......                        ...

  2. Partition算法详解

    partition算法有着非常重要的应用,这个算法的思想虽然简单,但具体实现的细节却比较多,今天我重点复习了这个算法,本文记录我对这个算法的理解. 文章目录 Partition算法解析 二分Parti ...

  3. 【leetcode】86. Partition List

    题目如下: Given a linked list and a value x, partition it such that all nodes less than x come before no ...

  4. LeetCode Partition Equal Subset Sum(动态规划)

    问题:给出一个数组,问是否可以分成两个子集,其和相等 思路:首先要求数组和是偶数,然后用动态规划来求. 用dp(i,j)表示第i步时和为j是否可行,则有dp(i,j)= dp(i-1,j) || dp ...

  5. LeetCode MySQL 585. 2016年的投资(窗口函数over(partition by xx))

    文章目录 1. 题目 2. 解题 1. 题目 写一个查询语句,将 2016 年 (TIV_2016) 所有成功投资的金额加起来,保留 2 位小数. 对于一个投保人,他在 2016 年成功投资的条件是: ...

  6. 【技巧】LeetCode 86. Partition List

    LeetCode 86. Partition List Solution1: 我的答案,时间复杂度O(n)O(n)O(n),空间复杂度O(n)O(n)O(n) /*** Definition for ...

  7. [LeetCode]561. Array Partition I (数组分区 1)

    561. Array Partition I Given an array of 2n integers, your task is to group these integers into n pa ...

  8. Leetcode PHP题解--D14 561. Array Partition I

    561. Array Partition I 题目链接 561. Array Partition I 题目分析 本题给了一个数组,要求将数组分为n个只有2个元素的一对. 使得每对数字中最小的数加起来的 ...

  9. LeetCode Partition List(链表分段)

    题意:给出一个单链表,有参数的数x.将比x小的数排在比x大的数据后面 思路:类似于快速排序的分段处理.为了简单操作,在单链表前加个头结点.注意,在处理时,如果当前处理结点与被替换结点为同一结点结,两个 ...

最新文章

  1. 【系统架构师修炼之道】(13):操作系统基础知识——进程基础知识
  2. jQuery+php+ajax实现无刷新上传文件功能
  3. 【机器学习基础】机器学习算法中分类知识总结!
  4. mobsdk线上崩溃事故报告_重大事故!IO问题引发线上20台机器同时崩溃
  5. 翼方健数邓振:“DRG+AI”助力实现医院精细化管理
  6. linux确定刻录机目录,在Linux操作系统下使用DVD刻录机(转)
  7. 【AI视野·今日CV 计算机视觉论文速览 第240期】Thu, 4 Nov 2021
  8. 【转】javascript代码混淆和压缩
  9. openmeetings(开源视频会议系统)的详细安装步骤 (windows版)
  10. 车辆模型-动力学模型(Dynamics Model)
  11. 皮克公式:点阵中多边形的面积公式
  12. 【Linux系统】第6节 Linux系统压缩与解压缩文件
  13. 【卫星影像三维重建】完整的卫星立体重建
  14. python爬虫笔记---1.13---第一篇
  15. 遥感影像语义分割论文笔记(一)FarSeg CVPR2020
  16. 蓝桥杯——瓷砖样式(第八届决赛)
  17. 发光二极管二极管引脚_LCD? 发光二极管? 等离子体? HDTV技术入门指南
  18. QUIC不可靠的数据报扩展(An Unreliable Datagram Extension to QUIC)
  19. system.exe,alien32.exe,ftsKetNt.7ps,SysKetNt.Sys, iexpe.exe等1
  20. iOS开发-技术知识盘点总结(二)

热门文章

  1. IDEA卡顿解决方法
  2. hutool BigExcelWriter 下的autoSizeColumnAll异常问题
  3. DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
  4. Web方式预览Office/Word/Excel/pdf文件解决方案
  5. VS2013、VS2015中,新建项目没有看到解决方案的问题(已解决)
  6. 用Java获取当前工作目录
  7. malloc和calloc之间的区别?
  8. Scala 2.8馆藏图书馆是“历史上最长的遗书”吗? [关闭]
  9. Win11如何开启聚焦功能?Win11开启聚焦功能的方法
  10. shiro身份验证失败捕获的异常对应信息