剑指offer
春风又。
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 52. 两个链表的第一个公共节点
输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:示例 2:示例 3: 方法2: 方法3 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-07-04 23:26:08 · 58 阅读 · 0 评论 -
剑指 Offer 28. 对称的二叉树
(终于自己做出来一道递归题了 太不容易了)请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 示例 1:示例 2: 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/dui-cheng-de-er-cha-shu-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出原创 2022-07-04 21:17:52 · 72 阅读 · 0 评论 -
剑指 Offer 18. 删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动示例 1:示例 2: 代码2 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/shan-chu-lian-biao-de-jie-dian-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-30 22:23:59 · 79 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:给定 target = 5,返回 true。 给定 target = 20,返回 false。 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof 著作权归领扣网络所有。商业转载请联系官方授权原创 2022-06-30 21:48:06 · 84 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:示例 2:方法一: 新建一个字符串,将原来的字符串从n开始后的元素先插入到新的字符串中,插完后再将 [0,n)的字符插入到新字符串中。 方法二: 先将原来的字符串转换为数组反转; 再将[0,len-n-1]反转; 最后将[len-n,len-1]反转 法一: 法二: 来源:力扣(LeetCode)原创 2022-06-13 21:46:23 · 53 阅读 · 0 评论 -
剑指 Offer 35. 复杂链表的复制(Java)
请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:示例 2: 示例 3: 示例 4:利用哈希表实现 (可以在b站搜一些大佬的视频讲解,更加直观) 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/fu-za-lian-biao-de-fu-zhi-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请原创 2022-06-12 20:02:44 · 164 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表(Java)
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:先算出链表的长度,再定义一个该长度的数组,从数组的最后一个元素开始存放head从首节点开始的值。原创 2022-06-12 17:49:35 · 175 阅读 · 0 评论 -
剑指 Offer 30. 包含min函数的栈(Java)
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。思路一:用栈实现:思路二:用数组实现:法一:用栈实现 法二:用数组实现 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-11 23:37:12 · 107 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列(Java)
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:示例 2:如果题目看不懂的话,可以看这道题的评论,有许多大佬讲的还是很清楚的,这里就不说了。题目说是用两个栈实现一个队列,首先得知道 所以,我理解的尾插操作为用两个栈实现队列的先进先出。首先建立两个栈,其长度为0,表示其为空 由于栈是先进后出,所以每插入一个元素,需要将其他的元原创 2022-06-11 22:11:20 · 330 阅读 · 0 评论