zoukankan      html  css  js  c++  java
  • [LeetCode92]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.

    反转m到n处的单链表

    The basic idea is as follows:

    (1) Create a new_head that points to head and use it to locate the immediate node before them-th (notice that it is 1-indexed) node pre;

    (2) Set cur to be the immediate node after pre and at each time move the immediate node after cur (named move) to be the immediate node after pre. Repeat it for n - m times.

    分类:Linked List

    代码:

    class Solution {  
    public:
        ListNode* reverseBetween(ListNode* head, int m, int n) {
            ListNode* new_head = new ListNode(0);
            new_head -> next = head;
            ListNode* pre = new_head;
            for (int i = 0; i < m - 1; i++)
                pre = pre -> next;
            ListNode* cur = pre -> next;
            for (int i = 0; i < n - m; i++) {
                ListNode* move = cur -> next; 
                cur -> next = move -> next;
                move -> next = pre -> next;
                pre -> next = move;
            }
            return new_head -> next;
        }
    }; 
  • 相关阅读:
    PHP 把字符转换为 HTML 实体
    CSS 不换行 white-space 属性详解
    JQuery 事件器的介绍
    maven 添加自己的包
    MYSQL 安装
    优秀系统
    JSP中的相对路径和绝对路径(转)
    Eclipse RCP扩展
    JSTL与EL(转)
    el表达式跟ognl表达式的区别(转)
  • 原文地址:https://www.cnblogs.com/zhangbaochong/p/5287562.html
Copyright © 2011-2022 走看看