题目:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前
给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。

解析:创建两个list分别为A、B,其中A存小于x的值的集合,B存大于等于x的值的集合,然后合并集合A、B,最后就是创建单链表返回了

import java.util.*;/*
public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}*/
public class Partition {public ListNode partition(ListNode pHead, int x) {ListNode head=null;ListNode p=pHead;List<Integer> list1 = new ArrayList<Integer>();//存小于x值List<Integer> list2 = new ArrayList<Integer>();//存取大于等于x的值while(p!=null){if(p.val<x){list1.add(p.val);}if(p.val>=x){       //将大于等于x的值放在list2list2.add(p.val);}p=p.next;}list1.addAll(list2);//将list2的数据合并到list1head = new ListNode(list1.get(0));//注意:头节点带有值for(int i=list1.size()-1;i>=1;i--){//头插法创建单链表返回即可ListNode q= new ListNode(list1.get(i));q.next=head.next;head.next=q;}return head;}
}

《剑指offer》链表分割相关推荐

  1. 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...

    点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...

  2. 划水总结剑指offer 链表系列1

    最近在找实习,发现面试题和oj的题差距蛮大的,然后粗略的刷了一遍剑指offer.希望6月中旬前能拿个实习(捂脸哭) 1.首先总结关于链表的题. (1)从尾到头打印一个链表.像我这样的憨憨上来就想 这不 ...

  3. 剑指 offer 链表倒数的第k个数

    快慢指针 快指针线遍历到第k-1个数,然后慢指针在从头开始遍历,这样快慢指针有k-1个间隔,当快指针到链表末尾时,慢指针指的数就是倒数第k个数. public class Solution {     ...

  4. 剑指Offer——链表中倒数第K个节点

    1.题目描述 输入一个链表,输出该链表中倒数第k个结点. 2.代码实现 package com.baozi.offer;/*** @author BaoZi* @create 2019-07-11-1 ...

  5. 剑指offer 链表中倒数第k个节点

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 解决方案: public class Solution {public ListNode FindKthToTail(ListNode head, ...

  6. python删除链表的倒数第k个节点,剑指offer 链表中的倒数第K个节点 Python and C++

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路 假设链表中的节点数大于等于k个,那么一定会存在倒数第k个节点,首先使用一个快指针先往前走k步,然后两个指针每次走一步,两个指针之间始终有k的 ...

  7. 剑指Offer——链表中环的入口结点

    题目描述: 一个链表中包含环,请找出该链表的环的入口结点. 分析: 设置两个指针p1,p2, 两个指针都从链表的头部开始走,不过p1每次走一步,p2每次走两步. 直到相遇的时候,p2走的长度是p1的两 ...

  8. Java解析剑指Offer链表篇(1)

    目录 一.移除链表元素 1.题目要求 2.基本思路 3.代码演示 二.反转链表 1.题目要求 2.基本思路 3.代码实现 三.链表的中间结点 1.题目要求 2.基本思路 3.代码实现 四.链表中倒数第 ...

  9. LeetCode 21.23.剑指 Offer II 078. 合并两个有序链表 | C语言版

    LeetCode 21. 合并两个有序链表 | C语言版 LeetCode 21. 合并两个有序链表 题目描述 解题思路 思路一:使用栈 代码实现 运行结果 参考文章: 思路二:减少遍历节点数 代码实 ...

  10. 【每日一题】剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点

最新文章

  1. java结束全部操作代码_Java创建与结束线程代码示例
  2. springcloud 组件_SpringCloud组件mica 2.0.5发布,添加对sentinel、undertow指标收集
  3. LBS将使品牌口碑更真实
  4. 线上慢查询?试试这几个优化思路!
  5. 一张图看懂Bean的实例化过程
  6. 前端学习(2943):vue结合bs搭建首页
  7. java 登录拦截器_springMVC 拦截器-用户登录拦截实战
  8. PostgreSQL PostGIS 的5种空间距离排序(knn)算法
  9. springboot python整合_SpringCloud 整合 Python - Flask
  10. SpringMVC处理Json、文件上传、拦截器
  11. 【数据结构和算法笔记】用并查集求解等价关系
  12. 利用最新的开源软件构建日志管理系统
  13. c语言程序设计967,2017年湖南师范大学数学与计算机科学学院967C语言程序设计和数据结构[专业硕士]之C程序设计考研仿真模拟题...
  14. C语言函数调用的方式求两个数的大小
  15. 度假村酒店官方网站模板里面包含7个子页面,适合酒店住宿网站模板下载
  16. 编译原理(第3版) 清华大学出版社 黄贤英等人著作 部分课后习题答案
  17. 联想教育应用使用说明(7.6版本)——第4章 网络控制工具的使用
  18. php怎样转换jpg,php pdf如何转jpg
  19. 指纹识别 matlab
  20. 蓝桥杯单片机(十二)PCF8591(D/A转换)

热门文章

  1. 一张图get jQuery所有方法
  2. L1-010 比较大小(8行代码AC!!!)
  3. yy直播没声音html,驱动技巧:解决YY语音中麦克风无声或者有噪音的问题
  4. 虚拟Web主机(基于域名配置,基于ip地址,基于端口)
  5. Linux网络DNS分离解析
  6. shell脚本详解(二)——条件测试、if语句和case分支语句
  7. linux笔记之 rpm常用参数 ,yum安装编译器,httpd服务的开关
  8. Java与C底层数据类型转换
  9. 计算机 留学推荐信,计算机专业留学推荐信范文
  10. php php_zip.dll,PHP如何开启自带的ZipArchive类,实现压缩解压功能