zoukankan      html  css  js  c++  java
  • 第92题:反转链表II

    一. 问题描述

    反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

    说明:

    1 ≤ m ≤ n ≤ 链表长度。

    示例:

    输入: 1->2->3->4->5->NULL, m = 2, n = 4

    输出: 1->4->3->2->5->NULL

    二. 解题思路

    解题思路:利用链表性质进行求解,一次扫描。

    步骤一:找到m的边界,将m前面一个节点用first指向,m的第一个节点用temp指向,temp的下一个节点用data指向,data的下一个节点用result指向。

    步骤二:将data的下一个节点指向temp,然后将temp指向data,data指向result,

    Result指向result的下一个节点。

    步骤三:重复步骤二直到到达n的边界。

    步骤四:将m边界节点的第一个节点指向data,m边界前一个节点指向temp。

    三. 执行结果

    执行用时 :0 ms, 在所有 java 提交中击败了100.00%的用户

    内存消耗 :34.2 MB, 在所有 java 提交中击败了87.11%的用户

    四. Java代码

    class Solution {
        public ListNode reverseBetween(ListNode head, int m, int n) {
             if(m==n)
              {
                  return head;
              }else
              {
                  ListNode all=new ListNode(0);
                  all.next=head;
                  ListNode temp=all;
                  ListNode first=null;
                  for(int i=0;i<m&&temp!=null;i++)
                      {
                          first=temp;
                          temp=temp.next;
                      }
                  ListNode data=temp.next;
                  ListNode result=data.next;
                  for(int j=m;j<n;j++)
                      {
                         data.next=temp;
                         temp=data;
                         data=result;
                         if(result!=null)
                         result=result.next;
                      }
                      first.next.next=data;
                      first.next=temp;    
                      
                return all.next;
              }
        }
    }
  • 相关阅读:
    Nagios 监控网络流量(Windows主机和交换机)
    Nagios监控Windows服务器(NSClient++安装与应用)
    Mysql源码安装
    NETSNMP配置
    Linux 下文件解压
    cacti没有图像 排错
    菜鸟写游戏外挂
    什么是IDOC,以及IDOC的步骤
    后台跑程序(仿SM36)
    smartforms参数
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11759941.html
Copyright © 2011-2022 走看看