143. Reorder List

来源:互联网 发布:unity3d 5.x 动画系统 编辑:程序博客网 时间:2024/06/18 06:16
    public static void reorderList(ListNode head) {        if(head == null) {            return;        }        int count = 0;        ListNode cur = head;        while(cur != null) {            count++;            cur = cur.next;        }        if(count == 1 || count == 2) {            return;        }else {            int flag = count/2+1;            cur = head;            int index = 0;            ListNode tmp = null;            while(index < flag) {                index++;                tmp = cur;                cur = cur.next;            }            ListNode prep = cur,tcur = cur.next,tn = null,thead = null,rhead = null;            prep.next = null;            tmp.next = null;            while(tcur != null) {                tn = tcur.next;                tcur.next = prep;                prep = tcur;                tcur = tn;            }            tcur = prep;            cur = head;            while(tcur != null) {                thead = tcur.next;                rhead = cur.next;                tcur.next = cur.next;                cur.next = tcur;                cur = rhead;                tcur = thead;            }        }    }
0 0
原创粉丝点击