题解 | #牛的品种排序IV#
牛的品种排序IV
https://www.nowcoder.com/practice/bd828af269cd493c86cc915389b02b9f
/*
* function ListNode(x){
* this.val = x;
* this.next = null;
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
function sortCowsIV(head) {
// write code here
if (!head || !head.next) {
return head;
}
let blackHead = null; // 黑牛链表的头部
let blackTail = null; // 黑牛链表的尾部
let whiteHead = null; // 白牛链表的头部
let whiteTail = null; // 白牛链表的尾部
let node = head;
while (node) {
let next = node.next;
node.next = null;
if (node.val === 0) {
// 黑牛
if (!blackHead) {
blackHead = node;
blackTail = node;
} else {
blackTail.next = node;
blackTail = node;
}
} else {
// 白牛
if (!whiteHead) {
whiteHead = node;
whiteTail = node;
} else {
whiteTail.next = node;
whiteTail = node;
}
}
node = next;
}
if (blackTail) { //有黑牛的情况
blackTail.next = whiteHead;
return blackHead;
} else { //只有白牛的情况
return whiteHead;
}
}
module.exports = {
sortCowsIV: sortCowsIV,
};
查看11道真题和解析