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

全部评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
龙珠传说:nb,公务员解约不需要支付违约金吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务