[leetcode]Partition List
来源:互联网 发布:js window.open 编辑:程序博客网 时间:2024/06/16 18:54
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
.
题意:给了一个链表和一个值x, 分割这个链表让所有小于x的节点到所有大于或者等于x值的节点前面来
一开始我没看清楚题,这个题陈述的让人得仔细看一眼。 看例子来说,让所有小于3的点,都到4前面来,因为4比三大
思路:
先说小于x的点怎么办,那只能是走到2的前面的点,看看next.val是不是小于x,小于了x就把它弄出来,让x指向这个点的后面一个点
然后,把它从前面找,直到找到一个大于等于3的点,放在这个点前面。
那么关键就在于,从哪个点分割?我们首先得找到一个分割的点。 所以遍历一遍链表,直到下一个点的值比x大,那么我们就从这点的后面开始找小于x的点,这个点就是分割点。从这个点开始,不断的查看下一个点的大小,大的跳过,向前进一个节点,小的就切出去,弄到前面去。
public ListNode partition(ListNode head, int x) { if(head==null) return null; //traversal ListNode tar=head; while(tar.val<x&&tar.next!=null) tar=tar.next; ListNode fakehead=new ListNode(0); fakehead.next=head; ListNode temp=null; while(tar.next!=null){ if(tar.next.val<x){ temp=tar.next; tar.next=tar.next.next; temp.next=null; } else tar=tar.next; //has fetched that node, then ListNode start=fakehead; if(temp!=null){ while(start.next.val<x){ start=start.next; } ListNode larger=start.next; start.next=temp; temp.next=larger; } } return fakehead.next; }
0 0
- LeetCode: Partition List
- LeetCode Partition List
- LeetCode: Partition List
- [Leetcode] Partition List **
- [Leetcode] Partition List
- [LeetCode] Partition List
- leetcode 81: Partition List
- [Leetcode] Partition List
- leetcode 118: Partition List
- [LeetCode]Partition List
- [leetcode]Partition List
- LeetCode-Partition List
- [leetcode] Partition List
- LeetCode - Partition List
- [LeetCode] Partition List
- LeetCode 86: Partition List
- LeetCode:Partition List
- 【leetcode】Partition List
- Codeforces Round #238 (Div. 2)
- CF 405C Unusual Product
- Codeforces Round #238 (Div. 2)前3题解题报告
- ARC相对MRC的优点
- Cocos2d-x3.0 学习笔记1
- [leetcode]Partition List
- 广告资源收集
- Reduce opacity of div's background without affecting contained element
- 汇编中的各种跳转指令
- matlab 绘图1
- 游戏引擎价格战 CE杠上虚幻4 仅9.9美元/月
- matlab绘图2
- 安装完MySQL,在配置最后一步报错error Nr.1364
- position 的 static、relative、absolute、fixed、inherit