zoukankan      html  css  js  c++  java
  • Leetcode 92. 反转链表 II

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

    说明:
    1 ≤ m ≤ n ≤ 链表长度。

    示例:

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

    思路:分成两个情况来写
    第一种:如果m=1,那就是一道反转链表,先翻转m-n的节点,翻转后,头结点就变成了尾节点,所以把这些节点保存起来,然后再把后面的节点接到尾节点
    第二种:如果!=1,翻转m到n的中间节点即可
     1 public class 反转链表II {
     2     ListNode reverseBetween(ListNode head, int m, int n) {
     3         if(head==null||head.next==null)
     4             return head;
     5         
     6         if(m!=1)
     7         {
     8             ListNode first=head;//记录翻转处的前一个节点
     9             ListNode temp=head.next;//记录尾节点
    10             for(int i=0;i<m-2;i++)
    11             {
    12                 temp=temp.next;
    13                 first=first.next;
    14             }
    15             ListNode la=temp;
    16             ListNode pre=temp;//反转的起始节点
    17             ListNode p=temp.next;
    18             ListNode next=null;
    19             for(int i=0;i<n-m;i++)
    20             {
    21                 next=p.next;
    22                 p.next=pre;
    23                 pre=p;
    24                 p=next;
    25             }
    26             first.next=pre;
    27             la.next=p;
    28             
    29         }
    30         else {
    31             ListNode pre=head;
    32             ListNode la=pre;
    33             ListNode p=head.next;
    34             ListNode next=null;
    35             
    36             for(int i=0;i<n-m;i++)
    37             {
    38                 next=p.next;
    39                 p.next=pre;
    40                 pre=p;
    41                 p=next;
    42             }
    43             la.next=p;
    44             return pre;//反转后的头结点
    45             
    46         }
    47         
    48         return head;
    49     }
    50     public static void main(String argc[])
    51     {
    52         
    53     }
    54 }
    View Code
  • 相关阅读:
    H
    并查集
    H
    Supermarket (贪心 并查集)
    H
    M
    N-Find a way
    HDU 4035 Maze
    #386. 【UNR #3】鸽子固定器
    P4688 [Ynoi2016]掉进兔子洞
  • 原文地址:https://www.cnblogs.com/tijie/p/9940155.html
Copyright © 2011-2022 走看看