zoukankan      html  css  js  c++  java
  • leetcode--Reorder List

    Given a singly linked list LL0L1→…→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 void reorderList(ListNode head) {
            if(head != null){
                ListNode stepOne = head, stepTwo = head;
                while(stepTwo.next != null){
                    if(stepTwo.next != null)
                        stepTwo = stepTwo.next;
                    if(stepTwo.next != null){
                        stepTwo = stepTwo.next;
                        stepOne = stepOne.next;
                    }
                }
                if(stepOne.next != null){
                    stepTwo = stepOne.next;
                    stepOne.next = null;
                    ListNode tailOfSecond = stepTwo;
                    stepOne = stepTwo;
                    if(stepTwo.next != null)
                        stepTwo = stepTwo.next;
                    while(stepTwo.next != null){
                        ListNode temp = stepTwo.next;
                        stepTwo.next = stepOne;
                        stepOne = stepTwo;
                        stepTwo = temp;
                    }
                    stepTwo.next = stepOne;
                    tailOfSecond.next = null;
                }
    
                stepOne = head;
                if(stepTwo != stepOne){
                    while(stepTwo != null){
                        ListNode temp = stepOne.next;
                        stepOne.next = stepTwo;
                        stepOne = stepOne.next;
                        stepTwo = temp;
                    }
                }
            }        
        }
    }
    

      

  • 相关阅读:
    第十七章:jQuery类库
    第十八章:客户端存储
    第十六章:脚本化HTTP
    第十四章 校本化CSS
    第十三章 脚本化文档
    第十二章:window对象
    第十一章:WEB浏览器中的javascript
    第十章:Javascript子集和扩展
    第九章:Javascript类和模块
    第八章:Javascript函数
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3552936.html
Copyright © 2011-2022 走看看