Java——将单向链表按某值划分成左边小、中间相等、右边大的形式(进阶问题)
来源:互联网 发布:微信软文软件 编辑:程序博客网 时间:2024/04/29 06:22
【题目】
与上一篇博客相似,唯一的不同就是在原问题的要求智商再增加如下两个要求。
在左、中、右三个部分的内部也做顺序要求,要求每部分里的节点从左到右的顺序与原链表中节点的先后次序一致
【代码】
public static Node listPartition2(Node head,int pivot) { Node sH = null; Node sT = null; Node eH = null; Node eT = null; Node bH = null; Node bT = null; Node next =null; while(head!=null) { next = head.next; head.next = null; if(head.value < pivot) { if(sH==null) { sH = head; sT = head; }else { sT.next = head; sT = head; } }else if(head.value == pivot) { 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 ? eH : bH;}
阅读全文
1 0
- Java——将单向链表按某值划分成左边小、中间相等、右边大的形式(进阶问题)
- Java——将单向链表按某值划分成左边小、中间相等、右边大的形式(基础问题)
- 链表问题---将单向链表按某值划分成左边小,中间相等,右边大的形式
- 将单向链表按某值划分成左边小、中间相等、右边大的形式
- 将单向链表按某值划分成左边小,中间相等,右边大
- 将单向链表按某个值划分成左边小、中间相等、右边大的形式 Python 版
- 把单链表按某值划分成左边小,中间相等,右边大的形式,时间O(n),空间O(1)
- C++将链表划分为左边小,中间等,右边大于pivotKey的形式
- [JS]链表划分给定中间值,小的在左边,大的在右边并保持原排序
- C++链表划分左边小中间等右边大 时间复杂度O(n) 空间复杂度O(1)
- 微软100题(93)找出数组中比左边的大比右边的小的元素
- 两栏布局——实现左边固定,右边 自适应(右边固定,左边自适应)
- 在数组中 找左边都比其小右边都比其大的元素
- 每日一题(61) - 找出左边比它小,右边比它大的数
- Linux下的split 命令——将一个大文件根据行数平均分成若干个小文件
- 编写一个算法将顺序表A分成两部分,大于0 的在A的左边,小于0的在A的右边
- 正数放右边,负数放左边 —— java
- 仅用O(1)的空间,将整数数组按奇偶数分成2部分,数组左边是奇数、右边是偶数
- ConcurrentMap 、HashMap 、HashTable的比较
- 基础排序:归并排序
- SQL一维数据转二维
- 关于游戏交互界面设计的几点思考
- php Curl json
- Java——将单向链表按某值划分成左边小、中间相等、右边大的形式(进阶问题)
- IHS EViews v10.0 Win32_64 2CD
- Qt控件随窗口大小变化的设置方法(QTDesigner)
- Java并发修改异常
- 1009. 说反话 (20) PAT乙级真题
- HTML打开摄像头,进行拍照上传
- Centos7更改网卡名称Eth0
- bzoj2285 [SDOI2011]保密 分数规划spfa+最小割
- Ext.js学习(一)——回车事件响应