zoukankan      html  css  js  c++  java
  • 143. Reorder List(js)

    143. Reorder List

    Given a singly linked list LL0→L1→…→Ln-1→Ln,
    reorder it to: L0→LnL1→Ln-1→L2→Ln-2→…

    You may not modify the values in the list's nodes, only nodes itself may be changed.

    Example 1:

    Given 1->2->3->4, reorder it to 1->4->2->3.

    Example 2:

    Given 1->2->3->4->5, reorder it to 1->5->2->4->3.
    题意:对链表重新排列,倒数第i个节点接在第i个节点之后
    代码如下:
    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} head
     * @return {void} Do not return anything, modify head in-place instead.
     */
    var reorderList = function(head) {
        if(!head || !head.next || !head.next.next) return;
        let slow=head,fast=head;
        while(fast.next && fast.next.next){
            slow=slow.next;
            fast=fast.next.next;
        }
        let mid=slow.next;
        slow.next=null;
        let last=mid,pre=null;
        while(last){
            let next=last.next;
            last.next=pre;
            pre=last;
            last=next;
        }
        while(head && pre){
            let next=head.next;
            head.next=pre;
            pre=pre.next;
            head.next.next=next;
            head=next;
        }
    };
  • 相关阅读:
    BZOJ 1069 最大土地面积
    BZOJ 1059 矩阵游戏
    BZOJ 3570 动物园
    Luogu 3934 Nephren Ruq Insania
    Luogu 3233 [HNOI2014]世界树
    CF613D Kingdom and its Cities
    Luogu 4001 [BJOI2006]狼抓兔子
    Luogu 2824 [HEOI2016/TJOI2016]排序
    POJ 3463 Sightseeing
    Luogu 2495 [SDOI2011]消耗战
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/11028965.html
Copyright © 2011-2022 走看看