zoukankan      html  css  js  c++  java
  • Reverse Linked List II

    题目:

    Reverse a linked list from position m to n. Do it in-place and in one-pass.

    For example:
    Given 1->2->3->4->5->NULLm = 2 and n = 4,

    return 1->4->3->2->5->NULL.

    Note:
    Given mn satisfy the following condition:
    1 ≤ m ≤ n ≤ length of list.

     1     public ListNode reverseBetween(ListNode head, int m, int n) {
     2         if(head == null) return null;
     3         ListNode dummy = new ListNode(0);
     4         dummy.next = head;
     5         ListNode pre = dummy;
     6         ListNode start = head;
     7         
     8         for (int i = 1; i < m; i++) {
     9             start = start.next;
    10             pre = pre.next;
    11         }
    12         ListNode end = start;
    13         ListNode then = start.next;
    14         ListNode temp = then;
    15         for (int j = 0; j < n - m;  j++) {
    16             temp = then.next;
    17             then.next = start;
    18             start = then;
    19             then = temp;
    20         }
    21         pre.next = start;
    22         end.next = then;
    23         return dummy.next;
    24     }

    感觉写的挺丑的。。。

  • 相关阅读:
    SEO优化笔记
    ie8兼容border-radius方法
    简易透明黑色背景
    attr属性
    滚动延迟加载数据
    .net变量判断
    js传值
    15.setInterval
    14.名字查找
    13.angular时间
  • 原文地址:https://www.cnblogs.com/gonuts/p/4418880.html
Copyright © 2011-2022 走看看