题解 | #链表内指定区间反转#

链表内指定区间反转

http://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @param m int整型 
     * @param n int整型 
     * @return ListNode类
     */
    public ListNode reverseBetween (ListNode head, int m, int n) {
        // write code here
        if(m >= n) {
            return head;
        }
        int i = 1;
        ListNode p = head;
        int[] arr = new int[n - m + 1];
        while(p != null && i < m) {
            i++;
            p = p.next;
        }
        ListNode q = p;
        int j = 0;
        while(j < arr.length && q != null) {
            arr[j] = q.val;
            j++;
            q = q.next;
        }
        j = 0;
        while(j < arr.length && p != null) {
            p.val = arr[arr.length - 1 - j];
            j++;
            p = p.next;
        }
        return head;
    }
}
全部评论

相关推荐

今天 12:22
门头沟学院 Java
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务