题解 | #链表的奇偶重排#

链表的奇偶重排

http://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3

两个链表的解法

 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @return ListNode类
 */
function oddEvenList( head ) {
    // write code here
//     第一直觉用数组
//     第二直觉用两个链表
    if(!head) return null;
    let p = head;
    let l1 = new ListNode(-1);
    let l2 = new ListNode(-1);
    let p1 = l1;
    let p2 = l2;
    let count = 1;
    while(p){
        let pnext = p.next;//防止断链
        if(count % 2 === 1){
            p1.next = p;
            p1 = p1.next;
        }else{
            p2.next = p;
            p2 = p2.next;
        }
        p = pnext;
        count++;
    }
//     console.log(l1)
//     console.log(l2)
//     必须要有,断链操作
    p2.next = null;
//     两个链表链接起来
    p1.next = l2.next;
    return l1.next;
}
module.exports = {
    oddEvenList : oddEvenList
};
全部评论

相关推荐

StephenZ_:我9月份找的第一段实习也是遇到这种骗子公司了,问他后端有多少人和我说7个正职,进去一看只有一个后端剩下的都是产品前端算法(没错甚至还有算法)。还是某制造业中大厂,我离职的时候还阴阳怪气我
点赞 评论 收藏
分享
迷茫的大四🐶:都收获五个了,兄弟那还说啥,不用改了,去玩吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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