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

Reorder List

时间:2015-04-09 13:35:59      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:


//t 牵引拔出元素cur.next,后面的位置,为后面连起来用
// p2 牵引将要插入元素后面的位置,为后面连起来用
public void reorderList(ListNode head) {
        if(head==null || head.next==null || head.next.next==null) return;
        ListNode walk = head, run  = head, cur = head;
        
        while(run.next!=null&&run.next.next!=null){ 
            run = run.next.next;
            walk = walk.next;
        }
         
        reverse(walk);
        ListNode half = walk.next;
        walk.next = null;
        while(half!=null){
            ListNode h2 = half.next;
            half.next = cur.next;
            cur.next = half;
            half = h2;
            cur = cur.next.next;
        }
    }
    public void reverse(ListNode pr){
        if(pr==null || pr.next ==null) return ;
        ListNode cur=pr.next;
         while(cur.next!=null){
            ListNode t = cur.next.next; //牵引拔出元素后面的位置
            ListNode p2 = pr.next; // 牵引插入元素后面的位置
            pr.next=cur.next;
            pr.next.next = p2;
            cur.next = t;
        }  
    }

 

Reorder List

标签:

原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4409359.html

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