【leetcode】206: 反转链表
2023-09-11 14:21:08 时间
题目如下:
本题目可以引入两个变量,一个变量pre,一个变量instant,这两个既是变量,也是指针,我们用head指针不断往后进行移动,每往后移动一次,instant变量就保存当前head的指针,然后instant.next指向pre指针 ,然后将instant的地址赋予pre指针,这样pre就做到了在head向前移动的时候自己反向移动,两相交替,非常神奇。代码如下:
# 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: ListNode) -> ListNode: pre=None instant=None while head: instant=head head=head.next instant.next=pre pre=instant return pre
速度如下:
也还有更加麻烦的方法,暴力遍历两次,虽然也是O(n),但不够巧妙,这里就不解释啦
相关文章
- LeetCode Anagrams My solution
- leetcode 114.Flatten Binary Tree to Linked List (将二叉树转换链表) 解题思路和方法
- 后缀数组的应用:[Leetcode] 321.拼接最大数(困难)
- [LeetCode]114. 二叉树展开为链表
- 175、【动态规划】leetcode ——718. 最长重复子数组 (C++版本)
- 118、【回溯算法】leetcode ——40. 组合总和 II:回溯法+剪枝优化(C++版本)
- leetcode Interleaving String
- 【leetcode】日积月累,每日一题--24. 两两交换链表中的节点(DayDayUp 14)
- 【LeetCode】86. Partition List
- 【leetcode】92:反转链表 II
- 【leetcode】61: 旋转链表
- [LeetCode] 426. Convert Binary Search Tree to Sorted Doubly Linked List 将二叉搜索树转为有序双向链表
- [LeetCode] Coin Path 硬币路径
- [LeetCode] Split Linked List in Parts 拆分链表成部分
- [LeetCode] Odd Even Linked List 奇偶链表
- [LeetCode] Missing Number 丢失的数字
- [LeetCode] 92. Reverse Linked List II 倒置链表之二
- [LeetCode] 138. Copy List with Random Pointer 拷贝带有随机指针的链表
- leetcode 220. Contains Duplicate III 存在重复元素 III(困难)
- leetcode 114. Flatten Binary Tree to Linked List 二叉树展开为链表(简单)
- leetcode 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素(简单)
- leetcode 206. Reverse Linked List 反转链表(简单)
- leetcode算法234.回文链表
- leetcode算法1.两数之和