LeetCode力扣之Partition List
2018-03-12 17:09
260 查看
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
package leetCode;
/**
* Created by lxw, liwei4939@126.com on 2018/3/12.
*/
public class L086_Partition_List {
public ListNode partition(ListNode head, int x){
if (head == null || head.next == null){
return head;
}
ListNode dummy1 = new ListNode(0);
ListNode dummy2 = new ListNode(0);
ListNode cur1 = dummy1;
ListNode cur2 = dummy2;
while (head != null){
if (head.val < x){
cur1.next = head;
cur1 = cur1.next;
} else {
cur2.next = head;
cur2 = cur2.next;
}
head = head.next;
}
cur2.next = null;
cur1.next = dummy2.next;
return dummy1.next;
}
public static void main(String[] args){
L086_Partition_List tmp = new L086_Partition_List();
ListNode node1 = new ListNode(1);
ListNode node2 = new ListNode(4);
ListNode node3 = new ListNode(3);
ListNode node4 = new ListNode(2);
ListNode node5 = new ListNode(5);
ListNode node6 = new ListNode(2);
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
node5.next = node6;
node6.next = null;
ListNode res= tmp.partition(node1, 3);
while (res != null){
System.out.print(res.val + "->");
res = res.next;
}
System.out.println("NULL.");
}
}
Given
1->4->3->2->5->2and x = 3,
return
1->2->2->4->3->5.
package leetCode;
/**
* Created by lxw, liwei4939@126.com on 2018/3/12.
*/
public class L086_Partition_List {
public ListNode partition(ListNode head, int x){
if (head == null || head.next == null){
return head;
}
ListNode dummy1 = new ListNode(0);
ListNode dummy2 = new ListNode(0);
ListNode cur1 = dummy1;
ListNode cur2 = dummy2;
while (head != null){
if (head.val < x){
cur1.next = head;
cur1 = cur1.next;
} else {
cur2.next = head;
cur2 = cur2.next;
}
head = head.next;
}
cur2.next = null;
cur1.next = dummy2.next;
return dummy1.next;
}
public static void main(String[] args){
L086_Partition_List tmp = new L086_Partition_List();
ListNode node1 = new ListNode(1);
ListNode node2 = new ListNode(4);
ListNode node3 = new ListNode(3);
ListNode node4 = new ListNode(2);
ListNode node5 = new ListNode(5);
ListNode node6 = new ListNode(2);
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
node5.next = node6;
node6.next = null;
ListNode res= tmp.partition(node1, 3);
while (res != null){
System.out.print(res.val + "->");
res = res.next;
}
System.out.println("NULL.");
}
}
相关文章推荐
- leetcode---partition-list---链表
- leetcode_c++:链表:Partition List (086)
- leetcode Partition List
- Partition List - Leetcode
- Leetcode Partition List
- LEETCODE: Partition List
- Leetcode之partition-list
- LeetCode力扣之Rotate List
- Leetcode Partition List
- leetcode partition list
- Partition List -- LeetCode
- leetcode:Partition List 【Java】
- leetcode之Partition List,Reverse Nodes in k-Group
- leetcode 之Partition List(16)
- Partition List( LeetCode )
- LeetCode Partition List
- LeetCode--partition-list
- leetcode Partition List链表
- LeetCode OJ Partition List
- LeetCode刷题笔记(链表):partition-list