题目:

思路:

一个指针指向当前的节点,一个指针指向当前的前一个节点,借助辅助节点,对链表进行反转

初始化curr指向head

初始化pre指向None

当curr不为空,nextItem指向curr的下一个节点,curr的next指向pre

移位:pre移到curr,curr移动到nextItem

注意:最后返回的是pre,而不是curr

代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        if not head:
            return None
        pre = None
        curr = head
        while curr:
            nextItem = curr.next
            curr.next = pre
            pre = curr
            curr = nextItem
        return pre

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐