题目:给定一个单链表的头节点head,节点的值类型是整型,再给定一个整
数pivot。实现一个调整链表的函数,将链表调整为左部分都是值小于pivot的
节点,中间部分都是值等于pivot的节点,右部分都是值大于pivot的节点。

思路:新建六个指针分别为小于给定值的头节点,尾节点;等于给定值的头节点,尾节点;大于给定值的头节点,尾节点。然后还需要一个next指针保存当前节点的下一个节点。

具体代码:

public ListNode listPartition(ListNode head,int target){ListNode sH = null;//小于给定值的链表头ListNode sT = null;//小于给定值的链表尾ListNode eH = null;//等于给定值的链表尾ListNode eT = null;//等于给定值的链表尾ListNode bH = null;//大于给定值的链表尾ListNode bT = null;//大于给定值的链表尾ListNode next = null;//保存当前节点的下一个值while (head != null){next = head.next;head.next = null;if (head.val < target){if (sH == null){sH = head;sT = head;}else {sT.next = head;sT = head;}}else if (head.val == target){if (eH == null){eH = head;eT = head;}else {eT.next = head;eT = head;}}else {if (bH == null){bH = head;bT = head;}else {bT.next = head;bT = head;}}head = next;}//连接三部分链表,并判断是否有空的情况if (sT != null){sT.next = eH;eT = eT == null ? sT : eT;}if (eT != null){eT.next = bH;}return sH != null ? sH : eH == null ? bH : eH;}

算法-链表-给定一个数小于该值的在左边等于在中间大于的在右边相关推荐

  1. 字节跳动经典算法题:给定一个数n如23121;给定一组数字a如[2 4 9]求由a中元素组成的小于n的最大数

    字节跳动经典算法题(提问次数最多) 题目描述:给定一个数n如23121:给定一组数字a,如[2 4 9]:求由a中元素组成的小于n的最大数. 思路分析:暴力分析手法 1. 判断该位的数值是否在数字a中 ...

  2. 编写算法判别给定二叉树是否为完全二叉树_别找了,链表和二叉树相关面试题以及解答,我都给你们找好了...

    来源公众号:苦逼的码农 作者:帅地 无论是在面试还是在平时的做题中,链表相关算法题以及二叉树相关算法题,可以说是考的非常非常多的.我在 2019 的秋招面试中,也是遇到了好几次.为此,我总结了 9 道 ...

  3. JAVA算法:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合(JAVA)

    JAVA算法:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合(JAVA) 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合.. 当 n = 4 ...

  4. 数据结构专题(二):2.2单链表与顺序表,求元素个数,取值与查找

    先了解一下头结点: 头结点本身并不存在链表里面的元素信息,我们用头结点的目的是方便以后将所有元素全部找起来. 如下代码分别对应求个数,取值,查找 注意:取值的函数第二个参数是位置 查找的函数第二个参数 ...

  5. (java)最大数(给定一个数n如23121;给定一组数字a如[2 4 9]求由a中元素组成的小于n的最大数)

    给定一个数n如23121;给定一组数字a如[2 4 9]求由a中元素组成的小于n的最大数 思路其实不难但是不容易做出来.主要就是很多的边界条件.从第一位开始进行查询, 如果能够在数组中找到等于该位的元 ...

  6. KMeans算法,采用肘部法则获取类簇中心个数K的值。

    K-Means是一种非常常见的聚类算法,在处理聚类任务中经常使用,K-Means算法是一种原型聚类算法. 该算法重要的一步就是确定K的值的划分,通常我们采用肘部法则选取K值,再依据轮廓系数,及各个数据 ...

  7. 常考数据结构与算法----给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,

    题目描述 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径, 例如: 给出如下的二叉树,sum=22, 返回 [ [5,4,11,2], [5,8,9] ] 示 ...

  8. 数据结构与算法 -- 链表

    一.链表介绍 1.链表有地址不连续的结点序列,必须通过指针相互连接. 2.链表的分类: (1)单向线性链表 每个节点中除了存储数据结构内容以外,还需要保存指向下一个节点的指针,叫做后指针.最后一个节点 ...

  9. php算法求出一个数可以被分解成多少个_小学奥数必须掌握的30个知识模块汇总...

    关注成长教育  解决学习困惑 点击蓝字关注,与全国家长比肩同行 1.和差倍问题和差问题 和倍问题 差倍问题已知条件 几个数的和与差 几个数的和与倍数 几个数的差与倍数公式适用范围 已知两个数的和,差, ...

最新文章

  1. 数据仓库与联机分析处理
  2. WPF 漏斗控件 等待沙漏效果
  3. 如何在文字上划横线_如何设计一张618促销海报?
  4. 【分享】LazyLoad延迟加载(按需加载)
  5. 兰州交通大学计算机科学与技术学院,兰州交通大学计算机科学与技术
  6. mysql日志查询指令_MySQL查询日志总结
  7. Matlab Tricks(二十八)—— 笛卡尔积的实现
  8. BytePS源码解析
  9. 生成对抗网络GANs的用途
  10. 不透明度十六进制_十六进制不透明度表
  11. ASP.NET免费发送邮件|
  12. python 百度云不限速_百度云不限速插件内置十几种网盘搜索!
  13. axrue9不显示右侧文件_Axure 9.0基础教程:史上最详细的元件说明,建议你认真看完(一)...
  14. 第一周《人月神话》读书笔记-------黄志鹏
  15. 监控摄像头上滤光片的作用是什么
  16. 阿里巴巴与微软、苹果、亚马逊的实力对比
  17. 从零开始学习InfluxDB:安装和使用入门教程
  18. dockerer-compose搭建zookeeper集群,工作中最新亲测能用,超详细
  19. 贝叶斯条件概率/贝叶斯网络
  20. nCode:DesignLife案例教程四

热门文章

  1. c语言 linux取运行目录,c语言获取当前工作路径的实现代码(windows/linux)
  2. 论文翻译_论文翻译的注意事项有什么?
  3. opensuse 安装java_OpenSUSE Leap 42.3 安装java(Oracle jre)
  4. oracle卸载注意啥,关于oracle的安装,卸载以及其他注意事项
  5. bool类型返回值_Python 到底是强类型语言,还是弱类型语言?
  6. ibatis查询结果返回数组_在ibatis中传递和返回自定义数组对象,在java中传递和返回oracle...
  7. mybatis创建oracle用户,搭建Mybatis+Oracle项目以及简单的增删改查语法
  8. spring bean xml 调用方法_Spring通过Xml方式注册Bean的几处关键实现点
  9. 总线制和多线制示意图_知识||RS485简介及与其他总线网络的区别
  10. access两字段同时升序排序_7 天时间,我整理并实现了这 9 种常见的排序算法