代码拉取完成,页面将自动刷新
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 方法一 迭代
class Solution:
def reverseBetween(self, head: ListNode, left: int, right: int) -> ListNode:
dummyNode = ListNode(-1)
dummyNode.next = head
prev = dummyNode
for i in range(left - 1):
prev = prev.next
curr = prev.next
for i in range(right - left):
next = curr.next
curr.next = next.next
next.next = prev.next
prev.next = next
return dummyNode.next
# 方法二 递归
class Solution:
def reverseBetween(self, head: ListNode, left: int, right: int) -> ListNode:
def reverseN(head, n):
if n == 1:
global successor
successor = head.next
return head
last = reverseN(head.next, n-1)
head.next.next = head
head.next = successor
return last
if left == 1:
return reverseN(head, right)
head.next = self.reverseBetween(head.next, left-1, right-1)
return head
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。