143. Reorder List(js)
Posted xingguozhiming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了143. Reorder List(js)相关的知识,希望对你有一定的参考价值。
143. Reorder List
Given a singly linked list L: L0→L1→…→Ln-1→Ln,
reorder it to: L0→Ln→L1→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; ;
以上是关于143. Reorder List(js)的主要内容,如果未能解决你的问题,请参考以下文章