递归,先实现反转链表的前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


京公网安备 11010502036488号