内容简介: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.Example:
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.
Example:
Input: head = 1->4->3->2->5->2, x = 3 Output: 1->2->2->4->3->5
难度:medium
题目:给定链表和一指定值X,以X为参照将链表划分为小于X和大于等于X两部分。保持原始链表中结点的顺序不变。
思路:将原始链表先拆分为两链表,一个收集所以小于X的,一个收集其它的。然后合并两链表。
Runtime: 0 ms, faster than 100.00% of Java online submissions for Partition List.
Memory Usage: 36.7 MB, less than 0.90% of Java online submissions for Partition List.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode partition(ListNode head, int x) {
ListNode lHead = new ListNode(0), lTail = lHead;
ListNode geHead = new ListNode(0), geTail = geHead;
ListNode ptr = head, node = null;
while (ptr != null) {
node = ptr;
ptr = ptr.next;
if (node.val < x) {
lTail.next = node;
lTail = node;
} else {
geTail.next = node;
geTail = node;
}
}
lTail.next = geHead.next;
geTail.next = null;
return lHead.next;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First Python
Paul Barry / O'Reilly Media / 2010-11-30 / USD 49.99
Are you keen to add Python to your programming skills? Learn quickly and have some fun at the same time with Head First Python. This book takes you beyond typical how-to manuals with engaging images, ......一起来看看 《Head First Python》 这本书的介绍吧!