文章 2023-06-15 来自:开发者社区

剑指offer 36. 复杂链表的复刻

题目描述请实现一个函数可以复制一个复杂链表。在复杂链表中,每个结点除了有一个指针指向下一个结点外,还有一个额外的指针指向链表中的任意结点或者null。注意:函数结束后原链表要与输入时保持一致。数据范围链表长度 [0,500]。方法一:链表 O(n)这道题其实和普通的链表复制那题比较相似,只是要额外处理一个随机指针:先将链表所有结点复制一遍,即在原链表中的每个结点都复制一个新的结点。处理所有 ra....

剑指offer 36. 复杂链表的复刻
文章 2023-06-15 来自:开发者社区

剑指offer 24. 合并两个排序的链表

题目描述输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。数据范围链表长度 [0,500]。样例输入:1->3->5 , 2->4->5 输出:1->2->3->4->5->5 方法一:二路归并 O(n)我们可以创建一个头指针,然后将两个链表用这个头指针串起来。我们拿样例举例,看看是如何实现的(下面的图中等于是另外....

剑指offer 24. 合并两个排序的链表
文章 2023-06-15 来自:开发者社区

剑指offer 23. 反转链表

题目描述定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思考题:请同时实现迭代版本和递归版本。数据范围链表长度 [0,30]。样例输入:1->2->3->4->5->NULL 输出:5->4->3->2->1->NULL方法一:链表+迭代 O(n)直接设置三个指针分别指向前一个结点,当前结点和下一个结点,然后进行....

剑指offer 23. 反转链表
文章 2023-06-15 来自:开发者社区

剑指offer 22. 链表中环的入口结点

题目描述给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。数据范围节点 val 值取值范围 [1,1000]。链表长度 [0,500]。样例给定如上所示的链表: [1, 2, 3, 4, 5, 6] 2 注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。 则输出环的入口节点3. 方法一:链表,快慢指针扫描 O(n)这道题的....

剑指offer 22. 链表中环的入口结点
文章 2023-06-15 来自:开发者社区

剑指offer 21. 链表中倒数第k个节点

题目描述输入一个链表,输出该链表中倒数第 k 个结点。注意:k >= 1;如果 k 大于链表长度,则返回 NULL;数据范围链表长度 [0,30]。样例输入:链表:1->2->3->4->5 ,k=2 输出:4方法一:链表 O(n)思路,我们拿样例 1->2->3->4->5 且 k = 2 来举例:先遍历一遍链表得到链表长度 n 即 n =....

文章 2023-06-15 来自:开发者社区

剑指offer 17. 删除链表中重复的节点

题目描述在一个排序的链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点不保留。数据范围链表中节点 val 值取值范围 [0,100]。链表长度 [0,100]。样例1输入:1->2->3->3->4->4->5 输出:1->2->5样例2输入:1->1->1->2->3 输出:2->3方法一:线性扫描 O(n....

剑指offer 17. 删除链表中重复的节点
文章 2023-06-15 来自:开发者社区

剑指offer 16. 在O(1)时间删除链表结点

题目描述给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。假设链表一定存在,并且该节点一定不是尾节点。数据范围链表长度 [1,500]。样例输入:链表 1->4->6->8 删掉节点:第2个节点即6(头节点为第0个节点) 输出:新链表 1->4->8方法一:链表 O(1)这道题删除结点要用 O(1) 的时间复杂度,所以我们可以直接将删除结点的下...

剑指offer 16. 在O(1)时间删除链表结点
文章 2023-06-15 来自:开发者社区

剑指offer 05. 从尾到头打印链表

题目描述输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。返回的结果用数组存储。数据范围0≤ 链表长度 ≤1000。样例输入:[2, 3, 5] 返回:[5, 3, 2]方法一:STL O(n)利用 C++ STL 中 vector 的特性,可以直接返回反向数组。/** * Definition for singly-linked list. * struct ListNode { ...

文章 2023-05-29 来自:开发者社区

Python-剑指offer(15,16)反转链表,合并两个链表

题目:输入一个链表,反转链表后,输出新链表的表头。环境:Python2.7.3# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回ListNode def...

文章 2023-05-29 来自:开发者社区

Python-剑指offer(13,14)调整数组顺序使奇数置于偶数前面,链表中倒数第k个节点

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。环境:Python2.7.3# -*- coding:utf-8 -*- class Solution: def reOrderArray(self, array): # write code her...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

数据库

分享数据库前沿,解构实战干货,推动数据库技术变革

+关注