Advertisement
sweet1cris

Untitled

Jan 9th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.06 KB | None | 0 0
  1. /**
  2.  * Definition for ListNode
  3.  * public class ListNode {
  4.  *     int val;
  5.  *     ListNode next;
  6.  * }
  7.  */
  8. public class Solution {
  9.     public ListNode reverseBetween(ListNode head, int m, int n) {
  10.         if (m >= n || head == null) {
  11.             return head;
  12.         }
  13.        
  14.         ListNode dummy = new ListNode(0);
  15.         dummy.next = head;
  16.         head = dummy;
  17.        
  18.         for (int i = 1; i < m; i++) {
  19.             if (head == null) {
  20.                 return null;
  21.             }
  22.             head = head.next;
  23.         }
  24.        
  25.         ListNode premNode = head;
  26.         ListNode mNode = head.next;
  27.         ListNode nNode = mNode, postnNode = mNode.next;
  28.         for (int i = m; i < n; i++) {
  29.             if (postnNode == null) {
  30.                 return null;
  31.             }
  32.             ListNode temp = postnNode.next;
  33.             postnNode.next = nNode;
  34.             nNode = postnNode;
  35.             postnNode = temp;
  36.         }
  37.         mNode.next = postnNode;
  38.         premNode.next = nNode;
  39.        
  40.         return dummy.next;
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement