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

链表的奇偶重排

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
};
全部评论

相关推荐

11-13 20:32
门头沟学院 Java
面向未来编程code:我没看到他咋急,他不就问你个问题。。。
点赞 评论 收藏
分享
河和静子:如果大专也能好过的话,我寒窗苦读几年的书不是白读了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务