leetcode-javascript
leetcode-javascript copied to clipboard
LeetCode 力扣的 JavaScript 解题仓库,前端刷题路线(思维导图)。小伙伴们可以在Issues中提交自己的解题代码,🤝 欢迎Contributing,可打卡刷题,Give a ⭐️ if this project helped you!
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: ```javascript 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 ``` 返回它的最小深度 2. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ## 解题思路 `dfs`,对于当前节点,判断一下是否有左右孩子,有的话就取左右孩子得到的最小深度,如果只有左孩子,递归左孩子,只有有孩子,则递归右孩子。到子节点时,直接返回...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 ```javascript 1 / \ 2 2 / \ / \ 3 4 4 3 ``` 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: ```javascript 1 / \...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: ```javascript 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 。 ``` 示例 2: ```javascript 给定二叉树...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: ```javascript 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 计算给定二叉树的所有左叶子之和。 示例: ```javascript 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 ``` 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sum-of-left-leaves 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ## 解题思路 `dfs`,求左叶子之和,叶子结点我们比较好判断,而对于左孩子,我们设置一个标记就好了,例如左孩子标记 `1`,右孩子标记 `0`,那么当且仅当是叶子节点,并且标记为...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个二叉树,它的每个结点都存放一个 `0-9` 的数字,每条从根到叶子节点的路径都代表一个数字。 例如,从根到叶子节点路径 `1->2->3` 代表数字 `123`。 计算从根到叶子节点生成的所有数字之和。 说明: 叶子节点是指没有子节点的节点。 示例 1: ```javascript 输入: [1,2,3] 1 / \ 2 3 输出: 25 解释: 从根到叶子节点路径 1->2 代表数字...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: ```javascript 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 ``` 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-paths 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ## 解题思路...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。 示例: ```javascript root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3 / \ \ 3 2 11 /...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个有相同值的二叉搜索树(**BST**),找出 **BST** 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: - 结点左子树中所含结点的值小于等于当前结点的值 - 结点右子树中所含结点的值大于等于当前结点的值 - 左子树和右子树都是二叉搜索树 例如: ```javascript 给定 BST [1,null,2,2], 1 \ 2 / 2 返回[2]. ``` 提示:如果众数超过1个,不需考虑输出顺序 进阶:你可以不使用额外的空间吗?(假设由递归产生的隐式调用栈的开销不被计算在内)...
 >仰望星空的人,不应该被嘲笑 ## 题目描述 给定一个二叉搜索树的根节点 **root** 和一个值 **key**,删除二叉搜索树中的 **key** 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除它。 说明: 要求算法时间复杂度为 O(h),h 为树的高度。 示例: ```javascript root = [5,3,6,2,4,null,7] key = 3 5 / \ 3 6...