链表类
qiki_tang
不积硅步无以至千里,突破自己,糖没味儿加油!
展开
-
链表是否有环的判定,以及找到环的入口点
一、问题描述给定一个链表,确定它是否有环。要求不能使用额外空间二、解题思路 定义一前一后两个指针,一个跑得快(前)一个跑得慢(后) 当跑得快的反追上慢指针,则说明有环三、算法代码/**********************************************Author:tmwdate:2018-4-14*******************************...原创 2018-04-27 16:56:45 · 378 阅读 · 0 评论 -
5-从尾到头打印链表
一、题目描述输入一个链表的头结点,从尾到头反过来打印出每个结点的值二、解题思路【思路一---从头到尾入栈输出】借助栈的数据结构【思路二---递归即栈,用递归】递归本质上是一个栈结构,所以可考虑递归三、解题算法方法1、借助栈/************************************************author:tmwdate:2018-6-27*************...原创 2018-06-29 10:26:32 · 102 阅读 · 0 评论 -
13-O(1)时间删除链表结点
一、题目描述给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。二、解题思路1)当删除结点不是尾结点也不是头结点时把该结点下一个结点的内容复制到这个结点,删除下一个结点 -- 实现O(1)2)当该链表只有一个结点时删除此结点,并把链表头结点置NULL -- O(1)3)当删除的结点是尾结点时(链表不止一个结点)从头到尾遍历,找到该结点的上一个结点,删除该节点 -- 复杂度O(...原创 2018-06-30 22:57:39 · 111 阅读 · 0 评论 -
15-链表中倒数第k个结点
一、题目描述 插入一个链表,输出该链表中倒数第k个结点,为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个结点。【例如】一个链表有6个结点,从头到尾依次是1、2、3、4、5、6,这个链表的倒数第3个结点是值为4的结点二、解题思路一前一后两个指针设置prev指针,让它先走k-1步,当走到第k步时,back指针从1开始走。当prev指针走到表尾,则back指针指向的元素...原创 2018-06-30 23:01:12 · 165 阅读 · 0 评论 -
17-合并两个排序的链表
一、题目描述输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入下面的链表1和链表2,则合并之后的链表3如下所示链表1: 1->3->5->7链表2: 2->4->6->8合并链表3:1->2->3->4->5->6->7->8二、解题思路分析合并过程,链表1的头结点值小于链...原创 2018-06-30 23:03:48 · 184 阅读 · 0 评论 -
27-二叉搜索树转换成排序的双向链表
一、问题描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表,要求不能创建任何新的结点,只能调整树中结点指针的指向。比如输入下图的二叉搜索树,则输出转换之后的排序双向链表为: 10 / \ 6 14 / \ / \ 4 8 12 16NULL <- 4 <-> 6 <-> 8 <-> 10...原创 2018-07-02 23:11:43 · 222 阅读 · 0 评论 -
16-1 单链表的简单翻转
一、题目描述对链表整体做翻转二、解题思路定义三个指针*pre 、*cur 、*next三、解题算法/*****************************************************Author:tmwDate:2018-4-13*****************************************************/#include <st...原创 2018-07-06 09:11:27 · 186 阅读 · 0 评论 -
16-2 单链表从位置n到位置m的翻转
一、问题描述反转从位置m到n的链接列表。 在原地进行并一次完成。例如:给定1-> 2-> 3-> 4-> 5> nullptr,m = 2和n = 4,返回1-> 4-> 3-> 2-> 5> nullptr。注意:给定m,n满足以下条件:1 <= m <= n <=列表长度二、解题思路 1)找到待翻转的m...原创 2018-07-06 09:13:45 · 1171 阅读 · 0 评论 -
37-判断链表是否相交【找出第一个公共结点】
一、问题描述编写一个程序来查找两个单独链接列表的交集开始的节点。例如,以下两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗B: b1 → b2 → b3开始在节点c1相交。【提示】如果两个链表完全没有交集,则返回null。...原创 2018-07-06 09:18:16 · 398 阅读 · 0 评论