剑指offer(C++)-JZ36:二叉搜索树与双向链表(数据结构-树)
题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示数据范围:输入二叉树的节点数0≤n≤1000,二叉树中每个节点的值0≤val≤1000要求:空间复杂度O(1)(即在原树上操作),时间复杂度 O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指....
剑指offer(C++)-JZ18:删除链表的节点(数据结构-链表)
题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。1.此题对比原题有改动2.题目保证链表中节点的值互不相同3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点数据范围:0<=链表节点值<=100000<=链表长度<=10000示例:输入:{2,5,....
剑指offer(C++)-JZ76:删除链表中重复的结点(数据结构-链表)
题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5数据范围:链表长度满足 1<=n<=1000 ,链表中的值满足 1<=nval<=1000进阶:空间复杂度O(n) ,....
剑指offer(C++)-JZ35:复杂链表的复制(数据结构-链表)
题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 下图是一个含有5个结点的复杂链表。图中实线箭头表示next指针,虚线箭头表示random指针。为简单起见,指向null的指针没有画出。示例:输入:{1....
剑指offer(C++)-JZ22:链表中倒数最后k个结点(数据结构-链表)
题目描述:输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。数据范围:0<=n<=10^5,0<=ai<=10^9,0<=k<=10^9要求:空间复杂度O(n),时间复杂度O(n)进阶:空间复杂度O(1),时间复杂度O(n)例如输入{1,2,3,4,5},2时,对应的链表结....
剑指offer(C++)-JZ23:链表中环的入口结点(数据结构-链表)
题目描述:给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围: n≤10000,1<=结点值<=10000要求:空间复杂度 O(1),时间复杂度 O(n)例如,输入{1,2},{3,4,5}时,对应的环形链表如下图所示:给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围: n≤10000,1<=结点....
剑指offer(C++)-JZ52:两个链表的第一个公共结点(数据结构-链表)
题目描述:输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围: n<=1000要求:空间复杂度 O(1),时间复杂度 O(n)例如,输入{1,2,3},{4,5},{6,7}时,两个无环的单向链表的结构如下图所示:可以看到它们的第一个公共结点的结点值为6,所以返回结点....
剑指offer(C++)-JZ25:合并两个排序的链表(数据结构-链表)
题目描述:输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: n为0~1000,节点值为-1000~1000要求:空间复杂度 O(1),时间复杂度 O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:或输入{-1,2,4},{1,3,4}时,合并....
剑指offer(C++)-JZ24:反转链表(数据结构-链表)
题目描述:给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。数据范围: n小于等于1000要求:空间复杂度 O(1),时间复杂度 O(n)如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例:输入:{1,2,3}返回值:{3,2,1}解题思路:本题考察数据结构链表的使用。有两种解法:结合vecto....
剑指offer(C++)-JZ6:从尾到头打印链表(数据结构-链表)
题目描述:输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例:输入:{1,2,3}返回值:[3,2,1]解题思路:本题考察数据结构链表的使用。可使用vector容器对链表数据进行存储,并用reverse翻转即可。测试代码:/** * struct ListN.....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
数据结构更多链表相关
算法编程
开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。
+关注