CODE 47: Partition List

来源:互联网 发布:minecraft优化 编辑:程序博客网 时间:2024/05/10 03:52

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.

public ListNode partition(ListNode head, int x) {// Start typing your Java solution below// DO NOT write main() functionListNode p1 = new ListNode(0);ListNode q1 = new ListNode(0);ListNode p2 = p1;ListNode q2 = q1;while (head != null) {if (x > head.val) {p2.next = new ListNode(head.val);p2 = p2.next;} else {q2.next = new ListNode(head.val);q2 = q2.next;}head = head.next;}if (null != q1.next) {p2.next = q1.next;}return p1.next;}


原创粉丝点击