题目
思路
水题,遍历翻转即可。
代码
"""
Definition of ListNode
class ListNode(object):
def __init__(self, val, next=None):
self.val = val
self.next = next
"""
class Solution:
"""
@param: head: ListNode head is the head of the linked list
@param: m: An integer
@param: n: An integer
@return: The head of the reversed ListNode
"""
def reverseBetween(self, head, m, n):
# write your code here
dummy = ListNode(0)
dummy.next = head
count = 0
pre = dummy
node = head
pre_nodeM = None
nodeM = None
next_nodeN = None
nodeN = None
while node:
count += 1
if count == m:
pre_nodeM = pre
nodeM = node
pre = pre.next
node = node.next
elif count == n:
nodeN = node
next_nodeN = node.next
node.next = pre
pre_nodeM.next = nodeN
nodeM.next = next_nodeN
return dummy.next
elif count > m:
tmp = node.next
node.next = pre
pre = node
node = tmp
else:
pre = pre.next
node = node.next
return dummy.next