不带头结点代码传送门:http://www.cnblogs.com/SimonKly/p/6890287.html 可以从代码中看出,不带头结点的代码中插入节点的函数insert*中的参数是二级指针,因为头指针的指向可能会发生变化,需要用二级指针带回一级指针的地址。 而在带头结点的代码中在相同的插入 ...
分类:
编程语言 时间:
2017-05-22 17:45:55
阅读次数:
219
单链表的删除,就是找到链表节点的前面一个节点,将其与待删节点的下一个节点连接,待删节点断链 另一种删除方法,已知链表的头节点和待删节点,将待删节点的值赋为下一个节点的值,如果节点为末尾节点(非null),则需找到其前面的节点,将其与待删节点断链 总体时间复杂度仍然为O(1) ...
分类:
其他好文 时间:
2017-05-21 16:54:07
阅读次数:
126
[题目]: 给定链表的头节点 head,实现删除链表的中间节点的函数。 例如: 步删除任何节点; 1->2,删除节点1; 1->2->3,删除节点2; 1->2->3->4,删除节点2; 1->2->3->4-5,删除节点3; [进阶]: 给定链表的头节点 head、整数 a 和 b,实现删除位于 ...
分类:
其他好文 时间:
2017-05-16 18:36:43
阅读次数:
233
松鼠的新家 洛谷链接 尽管标签是省选/NOI-,但提交的通过率已经高到三分之一了。 但它仍旧是一个省选/NOI-的题。 大致题意就是按输入的顺序走一棵树,看每个节点经过多少次。问题就相当于把一条链上的所有节点权值都加一,最后统计每个点的权值。 但这样的时间复杂度比较高,所以我们可以把这条链的头节点和 ...
分类:
其他好文 时间:
2017-05-06 17:42:08
阅读次数:
154
删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 注意事项 链表中的节点个数大于等于n 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1->2->3->5->null. 挑战 O(n)时间复杂度 标签 ...
分类:
其他好文 时间:
2017-05-02 14:00:20
阅读次数:
185
题目 题目 给定一个二叉树的头节点head,已知其中所有节点的值都不一样,找到含有节点最多的搜索二叉子树,并返回这个子树的头节点。 例如, 最大搜索子树如右图 解析 解析 首先解释一下什么是最大搜索子树,就是二叉搜索树,任意节点的值必定大于左子树的最大值,小于右子树的最小值,且左右子树都是二叉搜索树 ...
分类:
编程语言 时间:
2017-04-10 22:28:25
阅读次数:
212
题目描述 输入一个链表,输出该链表中倒数第k个结点。 基本思想:定义两个指针a,b分别指向头节点, a指针先向前走k-1步(注意:因为倒数节点是从倒数第一个结点开始的,而不是零),然后a指针和b指针一起向前移动, 直到a->next == NULL。此时,b指针所指向的结点。即为倒数第K个结点。 边 ...
分类:
其他好文 时间:
2017-03-31 21:25:44
阅读次数:
192
1、题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 2、解题思路: (1)将左子树构造成双向链表,并返回链表头节点; (2)定位左子树双链表的尾节点; (3)如果左子树链表不为空,将当前root连缀其链尾; (4)将右子 ...
分类:
其他好文 时间:
2017-03-30 23:04:36
阅读次数:
214
恢复内容开始 1:有头节点、单向、不循环链表 对于这种有头节点的单向不循环链表插入数据如下图: 1)头部插入 2)尾部插入 代码如下 : 1 #include "stdafx.h" 2 #include<iostream> 3 4 using namespace std; 5 6 typedef i ...
分类:
其他好文 时间:
2017-03-23 23:54:39
阅读次数:
360
原理:队列的头指针执行头节点,尾指针执行最后一个节点。队列 + 有头链表。先进先出FIFO。 ...
分类:
其他好文 时间:
2017-03-19 22:10:52
阅读次数:
234