sword
crazy-Q
搬砖青年张
展开
-
sword16-反转链表
输入一个链表,反转链表后,输出新链表的表头。 ANY: 1、递归 2、将链表分组往前处理 3、尾插法 public class Sword16 { public static void main(String[] args) { Node<Integer> node1 = new Node<>(1); Node<Intege...原创 2020-03-02 18:19:29 · 87 阅读 · 0 评论 -
sword15-链表中倒数第K个节点
输入一个链表,输出该链表中倒数第K个结点。为了符合习惯,从1开始计数,即链表的尾结点是倒数第1个节点。例如,一个链表有6个结点,从头结点开始,它们的值依次是1,2,3,4,5,6。则这个链表倒数第三个结点是值为4的结点。 ANY:快慢指针法,快慢指针之间间距为K,当快指针走到链表尾部时,慢指针则刚好为倒数第K个节点 private static Node getKNodeByTail(Nod...原创 2020-03-02 14:24:03 · 78 阅读 · 0 评论 -
sword-07 用两个栈实现一个队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型 ANY: 队列定义:FIFO(先进先出) 栈定义:LIFO(后进先出) push时将数据都推入一个数据栈,第一次pop时将数据栈所有数据pop后压入转换栈,此时转换栈的pop顺序满足FIFO,pop出栈顶元素即可,以后每次pop判断转换栈是否为空,为空时将数据栈继续执行pop操作后压入 public class...原创 2019-11-22 15:13:59 · 78 阅读 · 0 评论 -
sword-06 根据先序遍历和中序遍历重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回根结点。 ANY: 前序遍历(又称先序遍历):根左右 中序遍历:左根右 前序遍历的第一个节点一定是根节点由此可得出左子树为472,根节点1,右子树为5386,由此...原创 2019-11-22 14:09:11 · 82 阅读 · 0 评论 -
sword05-逆序打印链表
输入一个链表的头节点,从尾到头打印每个节点的值 ANY: 1、递归大法 2、利用栈的特性 public class Sword05 { public static void main(String[] args) { Node<String> node1 = new Node<>("A"); Node<String>...原创 2019-11-15 15:27:09 · 97 阅读 · 0 评论 -
sword03-在二维数组寻找目标数
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 ANY: 从右上角开始比较 如果小于X,则可以跳过所在行 如果等于X,返回 如果大于X,则跳过所在列 public class Sword03 { public static void main(String[] ...原创 2019-11-15 10:09:24 · 82 阅读 · 0 评论 -
sword02-设计单例类
设计一个类,我们只能生成该类的一个实例 2.1 饿汉式 在类的初始化的时候就创建好对象,适用于对象不是很占内存的情景下,不能做到延迟加载,线程安全 ``` 或者 ```java public class Singleton2 { private static Singleton2 singleton2; static { singleton2 = new S...原创 2019-11-14 10:29:56 · 78 阅读 · 0 评论