随笔分类 - 题集/剑指offer
摘要:题目 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路 遍历每行,每行中利用二分法查找 实现 运行结果 true
阅读全文
摘要:题目 n阶矩阵,螺旋打印出来 思路 需要控制:1.边界 2.方向 使用一个二维数组存放数据,数组初始化为0,数组共有n平方个元素,因为是从1开始,所以元素的值是从1到n×n。每次填入一个数字判断一次方向和边界 实现 运行结果
阅读全文
摘要:题目 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字,例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出二叉树并输出它的头结点。 利用递归的方法构建,其实没有想象的那么难,主
阅读全文
摘要:题目 用先序,中序,后序,分别遍历一个二叉树 思想 1.(递归法)利用递归思想,向左向右遍历一个二叉树 2.(非递归)利用栈和循环,将结点压栈,按不同遍历方式选择不同策略从栈中取出结点输出 PS:后序遍历思想,从根结点开始,将所有最左结点全部压栈,每当一个结点出栈时,都先扫描该结点的右子树,只有当一
阅读全文
摘要:题目 反转一个单链表 实现 1.(递归法)利用递归思想,从头结点递归遍历到最后一个结点,递归返回最后一个结点并修改指针,使指针指向前一个结点。 2.(移动指针)定义当前结点指针cur,前一个结点指针pre,循环迭代,计算下一个结点指针,每次将当前结点指针反转指向前一个结点。 定义结点: Node.j
阅读全文