链表的重组
按照给定规则的重组,小的放前面,大的放后面
这类题目要返回链表,一定要注意弄一个头节点,这样才能进行下去
由这个实现,让我想到了,可以利用这个方法对链表进行排序(但貌似,也不是很好弄)
var partition = function (head, x) {
let small = new ListNode(-1)
let big = new ListNode(-1)
// 留存各自头节点,方便后面进行衔接(bigH)以及返回结果(smallH)
let smallH = small, bigH = big
while (head) {
if (head.val < x) {
// 小的给small进行衔接
small.next = head
small = small.next
} else {
// 大的给big进行衔接
big.next = head
big = big.next
}
head = head.next
}
// 尾节点置空
big.next = null
// 小的链表与大的链表进行衔接
small.next = bigH.next
return smallH.next
};