zoukankan      html  css  js  c++  java
  • Reorder List

    将midnode后面的node的指针反转,再从头尾两边同时遍历

    注意midnode的next设为null

     1 public class Solution {
     2     public void reorderList(ListNode head) {
     3         // IMPORTANT: Please reset any member data you declared, as
     4         // the same Solution instance will be reused for each test case.
     5         int count = 0;
     6         ListNode midnode = head;
     7         ListNode runner = head;
     8         while(runner != null&&runner.next!=null)
     9         {
    10             runner = runner.next.next;
    11             midnode = midnode.next;
    12             count++;
    13         }
    14         if(count < 1||midnode.next == null)
    15             return;
    16         
    17         ListNode fastrunner = midnode.next;
    18         runner = midnode;
    19         while(fastrunner!=null)
    20         {
    21             ListNode tmp = fastrunner.next;
    22             fastrunner.next = runner;
    23             runner = fastrunner;
    24             fastrunner = tmp;
    25         }
    26         ListNode frontrunner = head;
    27         ListNode backrunner = runner;
    28         while(frontrunner!=midnode && backrunner!=midnode)
    29         {
    30             ListNode tmp = backrunner.next;
    31             backrunner.next = frontrunner.next;
    32             frontrunner.next = backrunner;
    33             frontrunner = frontrunner.next.next;
    34             backrunner = tmp;
    35         }
    36         midnode.next = null;
    37     }
    38     
    39 }
  • 相关阅读:
    Avira 去广告
    git 初步使用
    C语言中的取模符号讨论
    查看指定端口的进程
    fuck~disabled form
    编译器相关资源
    scheme 相关资源
    Binary search tree
    各种屏幕(包括手机)尺寸测试工具
    实现一个完整c++11编译器的认证
  • 原文地址:https://www.cnblogs.com/jasonC/p/3415228.html
Copyright © 2011-2022 走看看