随笔分类 -  力扣算法Java篇

31.二叉搜索树的最近公共祖先
摘要:235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如 阅读全文

posted @ 2022-07-01 15:43 HHHuskie 阅读(30) 评论(0) 推荐(0)

30.两数之和 IV - 输入 BST
摘要:653. 两数之和 IV - 输入 BST 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 示例 1: 输入: root = [5,3,6,2,4,null,7], k = 9 输出: true 示例 2: 输入: ro 阅读全文

posted @ 2022-07-01 15:29 HHHuskie 阅读(26) 评论(0) 推荐(0)

29.验证二叉搜索树
摘要:98. 验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入:root = [2,1,3] 阅读全文

posted @ 2022-07-01 15:06 HHHuskie 阅读(30) 评论(0) 推荐(0)

28.二叉搜索树中的插入操作
摘要:701. 二叉搜索树中的插入操作 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 阅读全文

posted @ 2022-07-01 11:17 HHHuskie 阅读(41) 评论(0) 推荐(0)

27.路径总和
摘要:112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点的节点。 示例 1: 阅读全文

posted @ 2022-06-28 00:07 HHHuskie 阅读(40) 评论(0) 推荐(0)

26.翻转二叉树(重要)
摘要:226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root = [2,1,3] 输出:[2,3,1] 示例 3: 输入:root = [] 阅读全文

posted @ 2022-06-27 11:09 HHHuskie 阅读(33) 评论(0) 推荐(0)

25.二叉树的最大深度
摘要:104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 1 阅读全文

posted @ 2022-06-22 17:40 HHHuskie 阅读(31) 评论(0) 推荐(0)

24.二叉树的层序遍历
摘要:102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root = [1] 输出: 阅读全文

posted @ 2022-06-22 16:56 HHHuskie 阅读(51) 评论(0) 推荐(0)

23.二叉树的前序遍历
摘要:144. 二叉树的前序遍历 94. 二叉树的中序遍历 145. 二叉树的后序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。(前中后指的是根节点的位置) 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 阅读全文

posted @ 2022-06-21 16:36 HHHuskie 阅读(40) 评论(0) 推荐(0)

22.用栈实现队列
摘要:232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返 阅读全文

posted @ 2022-06-20 15:51 HHHuskie 阅读(47) 评论(0) 推荐(0)

21.有效的括号
摘要:20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入:s = "()" 输出:true 示例 2: 输入:s = "()[]{} 阅读全文

posted @ 2022-06-19 17:40 HHHuskie 阅读(34) 评论(0) 推荐(0)

20.删除排序链表中的重复元素
摘要:83. 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head = [1,1,2] 输出:[1,2] 示例 2: 输入:head = [1,1,2,3,3] 输出:[1,2,3] 提示: 链表中 阅读全文

posted @ 2022-06-19 16:41 HHHuskie 阅读(36) 评论(0) 推荐(0)

19.反转链表
摘要:206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中 阅读全文

posted @ 2022-06-18 22:20 HHHuskie 阅读(32) 评论(0) 推荐(0)

18.移除链表元素
摘要:203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:he 阅读全文

posted @ 2022-06-18 20:10 HHHuskie 阅读(33) 评论(0) 推荐(0)

17.环形链表
摘要:141. 环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。 阅读全文

posted @ 2022-06-18 11:00 HHHuskie 阅读(48) 评论(0) 推荐(0)

16.有效的字母异位词
摘要:242. 有效的字母异位词(与上一题383思路基本一致) 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram 阅读全文

posted @ 2022-06-18 09:48 HHHuskie 阅读(40) 评论(0) 推荐(0)

15. 赎金信
摘要:383. 赎金信 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1: 输入: 阅读全文

posted @ 2022-06-18 09:29 HHHuskie 阅读(65) 评论(0) 推荐(0)

14.矩阵置零
摘要:73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 示例 2: 输入:ma 阅读全文

posted @ 2022-06-17 07:33 HHHuskie 阅读(133) 评论(0) 推荐(0)

13.有效的数独
摘要:36. 有效的数独 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注意: 一个有效的数独 阅读全文

posted @ 2022-06-17 01:23 HHHuskie 阅读(73) 评论(0) 推荐(0)

12.杨辉三角
摘要:118. 杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 阅读全文

posted @ 2022-06-17 00:11 HHHuskie 阅读(43) 评论(0) 推荐(0)

导航