入门版(206题) 题目描述 解题思路:迭代 使用cur和pre两个指针,一前一后(一左一右)地指向两个相邻节点 在每一轮迭代中: 用临时指针保存pre的next 让pre的next(掉头)指向cur cur和pre都沿着链表原来的方向,向前(右)走一步 当pre为空时,迭代结束 此时cur就是新链 ...
分类:
其他好文 时间:
2020-12-03 12:12:56
阅读次数:
6
Difficulty: Easy Related Topics: Linked List Link: https://leetcode.com/problems/reverse-linked-list/ Description Reverse a singly linked list. 反转一个单链 ...
分类:
其他好文 时间:
2020-10-09 20:50:36
阅读次数:
22
// 反转单链表 ListNode * ReverseList(ListNode * pHead) { // 如果链表为空或只有一个结点,无需反转,直接返回原链表头指针 if(pHead == NULL || pHead->next == NULL) return pHead; ListNode * ...
分类:
其他好文 时间:
2020-07-04 22:37:54
阅读次数:
78
方法1: 迭代 时间复杂度:O(n) 空间复杂度:O(1) class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def reverseList(self, head: ListNod ...
分类:
其他好文 时间:
2020-06-25 17:31:04
阅读次数:
44
单链表反转可用迭代法,也可用递归方法,这里用迭代法(循环)实现。 示意图如下,其中pre指前一个节点,cur指当前节点,temp为临时节点。 主要思路就是让当前节点指向前一个节点,即cur->next=pre,需要事前将cur->next赋值给temp。然后下移即可。 ...
分类:
编程语言 时间:
2019-11-23 22:21:19
阅读次数:
105
1. 如何在一次传递中找到单链表的中间元素? 答案:http://javarevisited.blogspot.sg/2012/12/how-to-find-middle-element-of-linked-list-one-pass.html 2. 如何在不使用递归的情况下反转单链表? 答案:ht ...
分类:
其他好文 时间:
2019-11-23 20:27:14
阅读次数:
70
单链表是一种常见的数据结构,由一个个节点通过指针方式连接而成,每个节点由两部分组成:一是数据域,用于存储节点数据。二是指针域,用于存储下一个节点的地址。 所谓的单链表反转,就是把每个节点的指针域由原来的指向下一个节点变为指向其前一个节点。但由于单链表没有指向前一个节点的指针域,因此我们需要增加一个指 ...
分类:
其他好文 时间:
2019-10-24 00:38:50
阅读次数:
92
Problem: 反转单向和双向链表 【题目】 分别实现反转单向链表和反转双向链表的函数。 【要求】 如果链表长度为N,时间复杂度要求为O(N),额外空间 复杂度要求为O(1) Solution: 学会使用指针 Code: ...
分类:
其他好文 时间:
2019-06-07 23:11:22
阅读次数:
124
主要总结单链表反转的几种方法 第一种方法貌似是递归,不太懂,第二种方法使用三个指针逐一完成逆置 总结: 不明白结构体里的引用是什么意思 不明白整个函数是如何动态完成逆置的 使用3个指针遍历单链表,逐个链接点进行反转。 ...
分类:
其他好文 时间:
2019-03-25 20:34:18
阅读次数:
153
反转单链表主要有两种方式: 1、迭代法 2、递归法 Java代码 运行结果 链表反转前:1 2 3 4 5 null 迭代反转后:5 4 3 2 1 null 递归反转后:1 2 3 4 5 null ...
分类:
其他好文 时间:
2019-03-23 22:16:04
阅读次数:
133