1 Star 0 Fork 0

EnduRance / leetcode_python

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Leetcode_92.py 1.28 KB
一键复制 编辑 原始数据 按行查看 历史
EnduRance 提交于 2021-11-07 22:59 . commit
# 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
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/endurance/leetcode_python.git
git@gitee.com:endurance/leetcode_python.git
endurance
leetcode_python
leetcode_python
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891