java实现单链表的简单划分
2017-12-11 10:39
232 查看
给定一个链表和一个值X,将链表划分为两部分,使得划分侯晓宇x的节点在前,不小于x的节点在后。在这两部分中要保持原链表中的出现顺序。
分析:申请两个指针p,q,小于x的添加到p中,不小于x的添加到q中;最后将q链接到p的尾部即可。
注:与快速排序中的分治法类似,说明快速排序仍然使用于单链表
分析:申请两个指针p,q,小于x的添加到p中,不小于x的添加到q中;最后将q链接到p的尾部即可。
/*根据给定值将链表划分为两部分*/ public void Partition(Node head,int pointKey) { /*两个链表的头指针*/ Node leftHead=new Node(0); Node rightHead=new Node(0); /*两个链表的当前最后一个元素*/ Node left=leftHead; Node right=rightHead; Node cur=head.next; while(cur!=null) { if(cur.data<pointKey) { left.next=cur; left=cur; } else { right.next=cur; right=cur; } cur=cur.next; } /*将right链接到left尾部*/ left.next=rightHead.next; right.next=null; /*将整理好的链表赋值给当前链表头部*/ head.next=leftHead.next; }
注:与快速排序中的分治法类似,说明快速排序仍然使用于单链表
相关文章推荐
- java 单链表简单实现
- 用java简单的实现单链表的基本操作
- 用java简单的实现单链表的基本操作
- java数据结构之单链表的简单实现
- 【数据结构和算法】用java简单的实现单链表的基本操作
- 【用java简单的实现单链表的基本操作】
- java语言实现简单单链表链式储存结构。插入删除等操作。(有个地方看不出错误来,已经标注,望指正)
- 【数据结构】单链表的倒序、删除相同结点、按值排序等简单操作用java实现
- 用java简单的实现单链表的基本操作
- [Java] 多线程的简单实现
- 用java实现简单url负载均衡以及容错
- 用java实现简单的网络通信,相当于一个最简单的控制台qq(附代码) 推荐
- 用JSP+Servlet+JavaBean模式实现一个简单的登录网页设计(JSP+Tomcat+MySQL)
- 一种简单的方法在程序中实现透明效果(JAVA)
- 一个简单的用JAVA实现的屏幕抓图(源代码)
- 用Java简单实现文件分割与合并
- Java程序国际化的简单实现
- Java Web中的入侵检测及简单实现
- Java 的简单数据库连接池实现
- 用Java实现的字符串简单加密