08 2020 档案
摘要:递归 可以使用前序遍历将二叉树序列化为字符串,遇到null用字符串“null,”代替。 反序列化时将序列化的结果转化为String...
阅读全文
摘要:递归 思路: 将二叉搜索树中原先指向左节点的指针转化为双向链表中指向前一个结点的指针。将二叉搜索树中原先指向右节点的指针转化为...
阅读全文
摘要:解法 第一步:复制链表的所有节点,并放在对应节点之后形成一个长链表。这样的好处是在没有使用额外空间的情况下,在O(1)时间内找到r...
阅读全文
摘要:递归 在一棵二叉树中寻找所有路径,每条路径节点值的和为目标值sum。假设根节点的值为val,由于二叉树的子树也是二叉树,问题可以...
阅读全文
摘要:递归 以上面这课二叉搜索树为例其后续遍历结果为[5,7,6,9,11,10,8]。可以知道数组的最后一个元数8是二叉树的根节点...
阅读全文
摘要:题目一 不分行从上到下打印二叉树 队列 BFS 使用广度优先可以遍历一幅有向图,树是图的一种特殊退化形式,从上到下按层遍历二叉树...
阅读全文
摘要:辅助栈 使用一个辅助栈,根据弹出序列的元素,将压栈序列元素压入栈中,比如弹出序列第一个元素是4这时栈为空,则将压栈序列中的[1,2...
阅读全文
摘要:解法 首先需要将一个矩阵顺时针打印,则可以想到把矩阵分为几个圈,使用循环每次打印一圈,从外圈向内圈打印。 然后考虑循环的终止条...
阅读全文
摘要:解法 这题的关键是设计一种数据结构,当栈中压入节点时可以同时记录当前栈的最小值 class MinStack { class ...
阅读全文
摘要:递归解法 一棵二叉树是对称的则其左右子树互为镜像,因此可以递归判断左右子树是否互为镜像来判断二叉树是否对称。 class Sol...
阅读全文
摘要:递归 通过观察可以发现,只需交换非叶子节点的左右子节点即可完成镜像。 通过前序遍历,从上至下进行递归,如果非叶子节点则交换其子节...
阅读全文
摘要:解法递归 求解过程可以分为两步: 1. 遍历A中节点,找到与B中根节点相同的节点 第一步可以使用递归实现线序遍历 2. 判断是否存...
阅读全文
摘要:递归 可以逐一比较两个链表的头节点,将交小的节点取出放到链表尾部。当链表1为空时返回链表2,当链表2为空时,返回链表1。 /**...
阅读全文
摘要:解法 翻转链表就需要操作链表中的指针,改变指针指向。如果要将当前节点指向前一个节点则需要记录当前节点和前一个结点。当改变指向后,当...
阅读全文
摘要:双指针 首先可以使用快慢指针来判断该链表是否是环形链表,如果快指针能追上慢指针则是环形链表。假设环的节点数为n,用两个指针指向头节...
阅读全文
摘要:解法 第一种思路是从前向后遍历到链表尾,再从尾部回溯k-1次。由于是单链表所以这种方法不能实现第二种思路是如果已知链表长度为n那么...
阅读全文
摘要:双指针 lo指针指向数组前,hi指针指向数组尾部,lo指针向后移动直至指向的元素为偶数,hi指针向前移动直至指向的元素为奇数,然后...
阅读全文
摘要:扫描法 数字格式可以使用 A[.[B]][E|eC]表示A和C都是整数(可以有符号),而B是无符号整数 class Solutio...
阅读全文
摘要:递归解法 如果匹配的下一个字符不是 ‘’则继续匹配下一个字符 如果匹配的下一个字符是‘’则有多种选择: matchCore(s,p...
阅读全文
摘要:解法一 指针 preNode指向当前指针的前一个节点;curNode指向当前节点;nextNode指向当前节点后的一个节点(不重复)...
阅读全文
摘要:单指针 一 这个解法和原著思路类似: 找到要删除结点的位置p将p的下一个结点的值复制给p删除p的下一个结点由于没有处理尾部结点,最...
阅读全文
摘要:解法一 这题需要考虑大数问题,因为int类型能表示的数字是有范围的。当n很大时会发生溢出。需要使用字符串模拟数字加法求解。 // ...
阅读全文
摘要:解法一 此题需要关注边界问题: 当为0,n> 1); result *= result; if((ab...
阅读全文
摘要:解法一 这题需要注意的是,如果n为负数则二进制第一位为符号位,所以如果把n向右移几位左边就会补几位1而不是0。因此应把n与1相“与...
阅读全文
摘要:动态规化 使用动态规化的问题有一下特点: 目标是求解问题的最优解整体问题的最优解依赖各个子问题的最优解把大问题分解为小问题,各个小...
阅读全文
摘要:回溯法 机器人从(0,0)开始运动,进入坐标(i,j)时判断能否进入,如果能进入,再判断能否进入四个相邻的格子。 class So...
阅读全文
摘要:属性注入方式 first 配置文件名字改为application.properties 创建一个配置类 使用@Configura...
阅读全文
摘要:回溯法 回溯法适合由多个步骤组成的问题,并且每个步骤有多个选项。在某一步选择一个选项如果符合约束条件则进入下一步,如果不符合约束条...
阅读全文
摘要:class Solution { public int minArray(int[] numbers) { i...
阅读全文
摘要:递归 这道题很容易用递归求解,但是由于递归存在很多重复计算因此这种解法不实用,会超时。 class Solution { p...
阅读全文
摘要:解法 思路:先把元素逐一加入stack1,由于需要实现“先进先出”,因此可以将stack1中的元素pop出来,依次压入stack2...
阅读全文
摘要:解决办法 sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lo...
阅读全文
摘要:递归 前序遍历为:| 根结点 | 左子树 | 右子树 | 中序遍历为:| 左子树 | 根结点 | 右子树 | 以前序遍历中的根节点...
阅读全文
摘要:栈 要将链表从尾到头打印,即链表第一个最后打印,链表最后一个先打印,符合“后进先出”,因此可以使用栈结构。 /** * Defin...
阅读全文