zoukankan      html  css  js  c++  java
  • lintcode 中等题: reverse linked list II 翻转链表II

    题目

     翻转链表 II

    翻转链表中第m个节点到第n个节点的部分

    样例

    给出链表1->2->3->4->5->null, m = 2 和n = 4,返回1->4->3->2->5->null

    注意

    m,n满足1 ≤ m ≤ n ≤ 链表长度

    挑战

    在原地一次翻转完成

    解题

    九章中的程序

    /**
     * Definition for ListNode
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     */
    public class Solution {
        /**
         * @param ListNode head is the head of the linked list 
         * @oaram m and n
         * @return: The head of the reversed ListNode
         */
        public ListNode reverseBetween(ListNode head, int m , int n) {
            // write your code
            if( m>=n || head == null){
                return head;
            }
            ListNode dummy = new ListNode(0);
            dummy.next = head;
            head = dummy;
            // 找到旋转链表的第一个节点
            for(int i=1;i<m;i++){
                if( head ==null)
                    return null;
                head = head.next;
            }
            // 第m个节点的前一个节点
            ListNode premNode = head;
            // 第m个节点
            ListNode mNode = head.next;
            ListNode nNode = mNode;
            ListNode postnNode = mNode.next;
            for(int i=m;i< n;i++){
                if(postnNode == null){
                    return null;
                }
                // 旋转
                ListNode tmp = postnNode.next;
                postnNode.next = nNode;
                nNode = postnNode;
                postnNode = tmp;
            }
            mNode.next = postnNode;
            premNode.next = nNode;
            return dummy.next;
        }
    }
    Java Code
  • 相关阅读:
    洛谷 P1591 阶乘数码
    洛谷 P2008 大朋友的数字
    洛谷 P1716 双调序列
    洛谷 P2309 loidc,卖卖萌
    洛谷 P1324 矩形分割
    洛谷 P2690 接苹果
    洛谷 P1239 计数器
    hdu_4352_XHXJ's LIS(数位DP+状态压缩)
    hdu_5648_DZY Loves Math
    hdu_5179_beautiful number(数位DP)
  • 原文地址:https://www.cnblogs.com/bbbblog/p/5103021.html
Copyright © 2011-2022 走看看