Leetcode-Partition List
2014-11-16 07:16
316 查看
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
return
Analysis:
The first element that is not less than x is the point of partition. We record this node and its predecessor. Once we encount a node that is less than x later, we insert it between the point and its predecessor, then update the predecssor to this node.
Solution:
You should preserve the original relative order of the nodes in each of the two partitions.
For example,
Given
1->4->3->2->5->2and x = 3,
return
1->2->2->4->3->5.
Analysis:
The first element that is not less than x is the point of partition. We record this node and its predecessor. Once we encount a node that is less than x later, we insert it between the point and its predecessor, then update the predecssor to this node.
Solution:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode partition(ListNode head, int x) { if (head==null || head.next==null) return head; ListNode preHead = new ListNode(0); preHead.next = head; ListNode end = preHead; ListNode cur = head; while (cur!=null && cur.val<x){ end = cur; cur = cur.next; } while (cur!=null && cur.next!=null){ if (cur.next.val>=x){ cur = cur.next; } else { ListNode temp = cur.next; cur.next = temp.next; temp.next = end.next; end.next = temp; end = temp; } } return preHead.next; } }
相关文章推荐
- LeetCode 86 Partition List
- LeetCode086 Partition List
- LeetCode 之 Partition List — C++ 实现
- [LeetCode]Partition List
- leetCode(10):Partition List 分类: leetCode 2015-06-18 09:08 105人阅读 评论(0) 收藏
- leetcode之Partition List
- leetcode: Partition List
- 086 Partition List [Leetcode]
- leetcode-- Partition List
- 【leetcode】Partition List
- 【LeetCode】Partition List
- LeetCode:Partition List
- 【LeetCode练习题】Partition List
- leetCode(10):Partition List
- [LeetCode]Partition List
- leetcode-Partition List
- [LeetCode]Partition List
- Partition List | LeetCode 8ms C++Solution
- LeetCode - Partition List
- leetcode Partition List