码迷,mamicode.com
首页 > 其他好文 > 详细

Reorder List

时间:2014-09-30 15:13:19      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:des   style   color   io   ar   java   for   sp   div   

Given a singly linked list L: L0L1→…→Ln-1Ln,
reorder it to: L0LnL1Ln-1L2Ln-2→…

You must do this in-place without altering the nodes‘ values.

For example,
Given {1,2,3,4}, reorder it to {1,4,2,3}.

答案

/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode reverse(ListNode head)
    {
        if (head == null || head.next == null)
        {
            return head;
        }
        ListNode i = head;
        ListNode j = i.next;
        ListNode k = j.next;
        head.next = null;
        for (; k != null; i = j, j = k, k = k.next)
        {
            j.next = i;
        }
        j.next = i;
        return j;
    }

    public void reorderList(ListNode head)
    {
        if (head == null || head.next == null || head.next.next == null)
        {
            return;
        }
        int LEN = 0;
        ListNode p;
        ListNode first = null;
        ListNode second = null;
        ListNode pFirst = null;
        ListNode pSecond = null;
        for (p = head; p != null; p = p.next)
        {
            LEN++ ;
        }
        LEN = LEN / 2;
        for (p = head; LEN > 1; LEN-- )
        {
            p = p.next;
        }
        second = reverse(p.next);
        p.next = null;
        for (first = head; first != null && second != null; first = pFirst, second = pSecond)
        {
            pFirst = first.next;
            pSecond = second.next;
            first.next = second;
            if (pFirst != null)
            {
                second.next = pFirst;
            }
        }
    }
}

Reorder List

标签:des   style   color   io   ar   java   for   sp   div   

原文地址:http://blog.csdn.net/jiewuyou/article/details/39694259

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!