一、反转链表相关
1.1 206. 反转链表
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def reverseList(self, head):
pre = None
cur = head
while cur:
nxt = cur.next
cur.next = pre
pre = cur
cur = nxt
return pre
1.2 92. 反转链表 II
- 思路:整体来看,left 是反转前的第 left 个节点(p0.next),pre 是反转后的头节点,cur 是当前遍历到的节点下一个。
class Solution:
def reverseBetween(self, head, left, right):
p0 = dummy = ListNode(next=head)
for _ in range(left - 1):
p0 = p0.next
pre = None
cur = p0.next
for _ in range(right - left + ):
nxt = cur.
cur. = pre
pre = cur
cur = nxt
p0.. = cur
p0. = pre
dummy.