您的位置:首页 > 其它

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 
1->4->3->2->5->2
 and 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.");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: