题解 | #链表内指定区间反转#
链表内指定区间反转
http://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c
递归,先实现反转链表的前N个节点,再用递归来反转区间
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # # @param head ListNode类 # @param m int整型 # @param n int整型 # @return ListNode类 # class Solution: def reverseBetween(self , head , m , n ): # write code here self.successor = None def reverseN(head, n): if n == 1: self.successor = head.next return head last = reverseN(head.next, n-1) head.next.next = head head.next = self.successor return last if m == 1: return reverseN(head, n) head.next = self.reverseBetween(head.next, m-1, n-1) return head