随笔分类 - 算法
摘要:要求:输入一棵二叉排序树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的结点,只能调整树中结点的指针的指向。
方法一:我们借助一个容器来顺序存储结点的指针,然后改变指针的指向。
方法二:我们边遍历边改变指针的指向。
阅读全文
摘要:实现一个函数复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任意结点或者NULL。
阅读全文
摘要:输入一个二叉树,查找该树的所有路径(从根结点到叶结点的通路),并返回和(路径上所有结点值的和)为某一指定值的路径。
阅读全文
摘要:要求:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。
算法思想:每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直到队列中所有的结点都被打印出来为止。
阅读全文
摘要:定义栈的数据结构,在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min , push , pop 的时间复杂度都是O(1)。
阅读全文
摘要:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:输入矩阵
{1, 2, 3, 4 }
{5, 6, 7, 8 }
{9, 10, 11, 12 }
{13, 14, 15, 16 }
输出:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10
代码如下:
阅读全文
摘要:输入两个递增排序的链表,合并这两个链表并使新链表中的结构任然递增!~~~~~上代码,递归的~~~~~
阅读全文
摘要:输入两个递增排序的链表,合并这两个链表并使新链表中的结构任然递增!~~~~~上代码,非递归的~~~~~
阅读全文
摘要:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。
阅读全文

浙公网安备 33010602011771号