题解 | #牛的品种排序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, };