143. Reorder List

Posted 鸵鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了143. Reorder List相关的知识,希望对你有一定的参考价值。

class Solution {
    public void reorderList(ListNode head) {
        ListNode p=head, q=head;
        while(p!=null&&p.next!=null)
        {
            p=p.next.next;
            q=q.next;
        }
        if(q==null||q.next==null)
            return;
        ListNode l=new ListNode(0);
        l.next=q;
        while(q.next!=null)
        {
            ListNode t=q.next;
            q.next=t.next;
            t.next=l.next;
            l.next=t;
        }
        p=head;
        q=l.next;
        ListNode res=new ListNode(0);
        ListNode r=res;
        while(p.next!=null||q!=null)
        {
            if(p.next!=null)
            {
                r.next=p;
                p=p.next;
                r=r.next;  
            }
            if(q!=null)
            {
                r.next=q;
                q=q.next;
                r=r.next;
            }
        }
        head=res.next;
    }
}

  

以上是关于143. Reorder List的主要内容,如果未能解决你的问题,请参考以下文章

143. Reorder List

143. Reorder List

leetcode 143. Reorder List

143. Reorder List

143. Reorder List

143. Reorder List