怎么建立自己的网站免费,wordpress好123,uc网页浏览器网页版,群晖搭建企业网站点击上方“算法猿的成长”#xff0c;选择“加为星标”第一时间关注 AI 和 Python 知识最近会更新一个 leetcode 的刷题系列#xff0c;每次更新一道题目#xff0c;并且通过画图辅助介绍自己的解题思路#xff0c;大家如果有更好的解题思路也欢迎在文末留言#xff0c;或… 点击上方“算法猿的成长”选择“加为星标”第一时间关注 AI 和 Python 知识最近会更新一个 leetcode 的刷题系列每次更新一道题目并且通过画图辅助介绍自己的解题思路大家如果有更好的解题思路也欢迎在文末留言或者公众号后台回复也可以添加我微信进行交流谢谢题目 | 206_Reverse_Linked_List链接 | https://leetcode.com/problems/reverse-linked-list/题目给定一个链表反转并输出结果。示例Input: 1-2-3-4-5-NULL思路反转一个单链表首先肯定需要遍历这个单链表在遍历的时候就希望修改当前结点的 next 指针指向其前一个结点因此肯定需要一个保存前一个结点的变量也就是反转后链表的头部指针。实现的思路应该是这样的首先定义一个 prev 保存前一个结点curr 保存当前结点然后还有一个 nxt 保存下一个结点其中 prev 就是最终的反转链表的头结点先让 nxt 保存下一个结点然后改变 curr 的 next 指针指向前一个结点即 prev ;接着让 prev curr 最后就是让 curr nxt指向下一个结点重复 2-5 步直到当前结点为空。下图展示了上述几个步骤的过程实现方法1class ListNode:def __init__(self, x):self.val xself.next Noneclass Solution:def reverseList(self, head: ListNode) -gt; ListNode:if not head or not head.next:return headprev,curr None,headwhile curr:nxt curr.nextcurr.next prevprev currcurr nxtreturn prev
方法2更加简洁的版本class ListNode:def __init__(self, x):self.val xself.next Noneclass Solution:def reverseList(self, head: ListNode) -gt; ListNode:reversed_head Nonecurrent headwhile current:reversed_head, reversed_head.next, current current, reversed_head, current.nextreturn reversed_head
github地址https://github.com/ccc013/DataStructe-Algorithms_Study/blob/master/Python/Leetcodes/206_Reverse_Linked_List.py留言时间欢迎关注我的微信公众号--算法猿的成长或者扫描下方的二维码大家一起交流学习和进步如果觉得不错在看、转发就是对小编的一个支持