问题:合并两个排序的链表 要求:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题代码: 递归版: 非递归版: ...
分类:
编程语言 时间:
2018-10-29 11:17:28
阅读次数:
133
声明: 链表定义如下: 从无头单链表中删除节点 详情: 给定一个没有头指针的单链表,一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个节点),请将该节点从单链表中删除。 题解: 解法一:由于单链表并没有给出头指针,因此我们无法通过遍历链表的方式找到该节点的前一个节点来改变其 ...
分类:
其他好文 时间:
2018-10-26 19:26:47
阅读次数:
174
一、题目:合并两个有序的单链表 思路:时间复杂度O(M+N),空间复杂度O(1) 简单来说就是在原来的链表上采用三个指针来操作两个链表。 代码: 二、题目:按照左右半区的方式重新组合单链表 思路:时间复杂度O(N),空间复杂度O(1) 简单来说就是将原链表拆分成左右半区,再合并。 代码: ...
分类:
其他好文 时间:
2018-10-14 14:11:35
阅读次数:
158
问题:反转链表 要求:输入一个链表,反转链表后,输出新链表的表头。 对于翻转链表的解法,在博客链表ADT实现中已经完成,只是将其定义为了链表的一种方法,将其代码稍加修改就可以作为此题的解答,代码如下: 代码验证: 若原链表为1(100)->2(200)->3(300),括号中的数字为节点的地址。将原 ...
分类:
编程语言 时间:
2018-10-11 22:03:26
阅读次数:
209
一、题目:将单向链表按某值划分为左边小、中间相等、右边大的形式 简单的思路:时间O(N),空间O(N) 采用一个数组来存储链表中的值,然后对该数组进行快排,然后再连成链表,快排思想如下图所示: 代码: 进阶思想:时间O(N),空间O(1) 代码: ...
分类:
编程语言 时间:
2018-10-06 17:49:10
阅读次数:
134
1、题目:环形单链表的约瑟夫问题 普通思路:时间复杂度O(n × m) 代码: 递归思路: 从1人环的0计算到10人环,结果为4。转化公式: 由图知,10人环中最后入海的是4号,现由其在1人环中的对应编号0来求解。 公式:其中,m为报数值,i为第几轮。 代码: ...
分类:
其他好文 时间:
2018-10-02 20:29:44
阅读次数:
119
1、题目:反转单链表或双链表 要求:如果链表长度为N,时间复杂度为O(N),额外的空间复杂度为O(1) 反转单链表的思路: 1 → 2 → 3 → 4 → 5 (1)first = head = 1 循环: temp = head.next 2 head.next = temp.next 1 → 3 ...
分类:
其他好文 时间:
2018-10-01 12:24:26
阅读次数:
230
问题描述: 请判断一个链表是否为回文链表。 示例 1: 示例 2: 方法1:用列表把前半部分保存起来,指针p从中间开始进行比较。 方法2:把全部的数都取出来放到list中,正序和逆序进行比较。 方法3:(官网)* 方法4:转 2018-09-20 14:51:27 ...
分类:
其他好文 时间:
2018-09-20 16:10:27
阅读次数:
139
问题描述: 编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表: 在节点 c1 开始相交。 方法1: 官方:求出两个表的长度,表长的先走一个差值。 方法3: 2018-09-14 16:26:48 ...
分类:
其他好文 时间:
2018-09-14 17:20:40
阅读次数:
113
//剑指offer 之 链表 //面试题6 从尾到头打印链表 /***************************************************************************************** 问题描述: 输入一个链表的头节点,从尾到头反过来打印出每... ...
分类:
其他好文 时间:
2018-09-06 14:37:55
阅读次数:
181