public ListNode partition(ListNode head, int x) {
if (head == null) return null;
ListNode leftDummy = new ListNode(0);
ListNode left = leftDummy;
ListNode rightDummy = new ListNode(0);
ListNode right = rightDummy;
ListNode node = head;
while (node != null) {
if (node.val < x) {
left.next = node;
left = left.next;
} else {
right.next = node;
right = right.next;
}
node = node.next;
}
// post-processing
right.next = null;
left.next = rightDummy.next;
return leftDummy.next;
}Partition List
最新推荐文章于 2021-04-06 09:37:45 发布
本文介绍了一种链表分隔算法的实现方法,该算法能够将一个链表中小于特定值x的所有节点放置到大于等于x的节点之前,通过创建两个虚拟头节点leftDummy和rightDummy来分别收集小于x和大于等于x的节点,并在遍历完成后进行连接。
313

被折叠的 条评论
为什么被折叠?



