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.
For example,
Given 1->4->3->2->5->2
and x = 3,
return 1->2->2->4->3->5
.
算法分析:开始我只是想在原来链表上进行操作,但是无法返回头结点。这道题区别链表反转,链表反转不用新建链表,只用在原有的链表上操作就行了。这道题,要新建两个新的链表,一个链表的元素全部小于目标值,另一个链表的元素全部大于目标值。然后把这两个链表连接起来。
public ListNode partition(ListNode head, int x){if(head == null || head.next == null){return head;}ListNode lessHead = new ListNode(0);ListNode greaterHead = new ListNode(0);ListNode less = lessHead, greater = greaterHead;ListNode node = head;while(node != null){ListNode temp = node.next;if(node.val < x){less.next = node;less = less.next;less.next = null;}else{greater.next = node;greater = greater.next;greater.next = null;}node = temp;}less.next = greaterHead.next;return lessHead.next;}
转载于:https://www.cnblogs.com/masterlibin/p/5804432.html
Partition List,拆分链表相关推荐
- [CareerCup] 2.4 Partition List 划分链表
2.4 Write code to partition a linked list around a value x, such that all nodes less than x come bef ...
- c语言链表拆分,C语言拆分链表程序
创建一个链表,并这个链表拆分成为两个链表的示例程序,将以下代码保存到一个源文件中:split_linked_list.c, 如下所示 – #include #include struct node { ...
- 数据结构—链表-单链表应用-拆分链表
拆分单链表 算法是函数需要三个指针类型的参数,分别是L头指针,指针L1和指针L2 我们先设置一个p指针,他指向L->next,即第一个节点,再定义p和r1两个指针. 首先我们令L1等于L即L1这 ...
- c语言链表拆分,P2 拆分链表
## 将一个链表A拆分成两个,序号是奇数留在链表A中,序号是偶数保存在链表B中 ``` #include #include //将一个链表拆分成两个,奇数留在链表A中,偶数保存在链表B中 typede ...
- 拆分一个链表为偶数链表和奇数链表
拆分一个链表为偶数链表和奇数链表 问题简述 设计一个算法,将一个结点值为自然数的单链表拆分为两个单链表,原表中保留值为偶数的结点,而值为奇数的结点按他们在原表中的相对次数组成一个新的单链表 代码实现 ...
- python实现单链表快速排序升序linkedqueue_LeetCode 总结 - 搞定 Linked List 面试题
链表删除 [203] Remove Linked List Elements [19] Remove Nth Node From End of List [83] Remove Duplicates ...
- 面试官系列 - LeetCode链表知识点题型总结
文章目录 前言 知识点 什么是链表 类别 单向链表 循环链表 双向链表 双向循环链表 与数组的性能对比 优缺点 常用技巧 题型总结 基本操作 删除类 翻转类题型 合并链表 环形链表 拆分链表 排序链表 ...
- 每周leetcode - 02链表专题 237/83/234/138/92/142/Offer 22/148/23/24/147/86/61/328/2/Offer06
文章目录 leetcode - 237. 删除链表中的节点 leetcode - 83. 删除排序链表中的重复元素 leetcode - 234. 回文链表 leetcode - 138. 复制带随机 ...
- 基于visual Studio2013解决面试题之0804复杂链表
题目 解决代码及点评 /*复杂链表的拷贝,现在有一个复杂链表,完成一个clone函数拷贝一个链表复杂链表是指struct Node{struct Node* _next;struct Node ...
最新文章
- JavaScript初学者编程题(24)
- layui概述||layui的学习内容
- 如何缩短IDEA行号的距离
- 【BZOJ2705】Longge的问题,数论练习
- python解析sql语句表名_python正则表达式匹配sql语句中的表名
- 翁恺老师C语言学习笔记(十)指针_指针运算
- POJ3169 Layout(差分约束)
- JDK_Proxy_InvocationHandler_动态代理
- android 手机内存uri_Android通过Uri转化为本地绝对路径的方案(全版本适配4.1-7.0)...
- Un*、Id分别突变情况下单闭环直流调速系统仿真
- python爬取贴吧网页信息
- html怎么美化输入框,css 美化input输入框-美化按钮
- ThinkPad默认墙纸(心经版)
- python爬虫国内外研究现状
- 网页制作中PS图像处理的应用
- OpenCascade Primitives BRep-Torus
- 提取单元格中某字符最后出现位置之前的数据
- 学习中的一些笔记,不懂的时候再来翻翻(持续更新)
- mumu的adb_MuMu进行adb操作
- 电子封装行业市场专项调查分析
热门文章
- word度量单位无效_【一定要看】这篇Word毕业论文排版全攻略,25个技能请收藏好~...
- html引用单文件组件,webpack入坑之旅(五)加载vue单文件组件_html/css_WEB-ITnose
- thymeleaf点击onclick事件
- layui的table常用方法
- 【codevs1116】四色问题
- oracle alert.log查找,oracle alert.log位置
- 三种动态创建元素区别
- java static 变量存在哪_Java中的静态方法和静态变量存储在哪里?
- 数据库的四大事务特性
- OpenGL基础26:Assimp库