1. 链表反转
1.1 反转链表

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 反转链表 II

思路:整体来看,p0 是反转前的第 left 个节点的前一个节点(dummy.next),pre 是反转后的头节点,cur 是当前遍历到的节点。
class Solution:
def reverseBetween(self, head, left, right):
p0 = dummy = ListNode(next=head)
for _ in range(left - 1):
p0 = p0.
pre =
cur = p0.
_ (right - left + ):
nxt = cur.
cur. = pre
pre = cur
cur = nxt
p0.. = cur
p0. = pre
dummy.






