用python语言解答LeetCode的92题
方法一:迭代法
方法一的代码:
#coding:utf-8
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def reverseBetween(self, head, m, n):
"""
:param head: ListNode
:param m: int
:param n: int
:return: ListNode
"""
if not head:
return None
cur, pre = head, None
while m > 1:
pre = cur
cur = cur.next
m, n = m - 1, n - 1
con, tail = pre, cur
while n:
third = cur.next
cur.next = pre
pre = cur
cur = third
n -= 1
if con:
con.next = pre
else:
head = pre
tail.next = cur
return head