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

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

找到第一个要反转的数之前的数 设置为pre. 然后正常反转 (n-m-1)次
https://blog.nowcoder.net/n/82d1e33b25c84859b6442702d266e817

import java.util.*;

public class Solution {

    public ListNode reverseBetween (ListNode head, int m, int n) {
      ListNode dummyNode = new ListNode(-1);
      dummyNode.next = head;
      ListNode pre = dummyNode;
      for(int i=0;i<m-1;i++){
        pre = pre.next;
      }
      
      ListNode cur = pre.next;
      for(int i=0; i<n-m; i++){
        ListNode tmp = cur.next;
        cur.next = tmp.next;
        tmp.next = pre.next;
        pre.next = tmp;
      }
      return dummyNode.next;
    }
}
全部评论

相关推荐

11-30 11:07
河南大学 Java
宇宙厂 测开 n*15
丘丘给个offer:有后选后
点赞 评论 收藏
分享
11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务