统计
发布:378篇
浏览:911327次
-
您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题解 /** * Definition for a binary tree node. * function TreeNode(val) { * this.v... 展开全文
-
给定一个二叉树,在树的最后一行找到最左边的值。 示例 1: 输入: 2 / \ 1 3 输出: 1 示例 2: 输入: 1 / \ 2 3 / / \ 4 5 6 / 7 输出: 7 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-bottom-left-tree-value 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题解 /** * Definition for a binary tree node... 展开全文
-
给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/symmetric-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题解 /** * Definition for a binary... 展开全文
-
给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。 示例: 输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树结点对象(TreeNode object),而不是数组。 给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / \ 2 6 / \ 1 3 最小的差值是 1, 它是节点1和节点2的差值, 也是节点3和节点2的差值。 来源:力扣(LeetCode) 链接:https://leetcod... 展开全文
-
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8 输出: 6 解释: 节点 2 和节点 8 ... 展开全文
-
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例 1: 输入: 3 / \ 9 20 / \ 15 7 输出: [3, 14.5, 11] 解释: 第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11]. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题解 /** * Definition for... 展开全文
-
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其自底向上的层次遍历为: [ [15,7], [9,20], [3] ] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii 著作权归领扣网络所有。商业转载请联系官方授权,... 展开全文
-
给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 图解 层序遍历 /** * // Definition for a Node. * function Node(val,children) { * this.val = val; * this.children = children; * }; */ /** * @param {Node} root * @return {number} */ var maxDepth = function(root) { let res = [] if (root == null) { return res } let bfs ... 展开全文
-
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 题解 /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @return {boolean} */ var isUnivalTree = function(root) { let res = new Set() if (root == ... 展开全文
-
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/convert-sorted-ar... 展开全文
-
二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 结构 1 / \ 2 3 / \ \ 4 5 6 二叉树的遍历分为深度优先遍历(DFS)和广度优先遍历(BFS),深度遍历有前(先)序、中序以及后序三种遍历方法,广度遍历即我们寻常所说的层次遍历 深度优先遍历(DFS) 深度优先搜索属于图算法的一... 展开全文
-
给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 你应该返回如下子树: 2 / \ 1 3 在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应该返回 NULL。 来源:力扣(LeetCode) 链接... 展开全文
-
给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题解 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树 /** * Definition for a binary tree node. * function TreeNode(val) { *... 展开全文
-
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。 题解 /** * // Definition for a Node. * function Node(val,children) { * this.val = val; * this.children = children; * }; */ /** * @param {Node} root * @return {number[][]} */ var levelOrder = function(root) { let res = [] if (root == null) { return res } let bfs = (root, j) => { i... 展开全文
-
给定一个 N 叉树,返回其节点值的后序遍历。 题解 后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点 /** * // Definition for a Node. * function Node(val,children) { * this.val = val; * this.children = children; * }; */ /** * @param {Node} root * @return {number[]} */ var postorder = function(root) { let res = [] if (root == null) { return res } let lrd = ... 展开全文
-
给定一个 N 叉树,返回其节点值的前序遍历。 题解 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树 /** * // Definition for a Node. * function Node(val,children) { * this.val = val; * this.children = children; * }; */ /** * @param {Node} root * @return {number[]} */ var preorder = function(root) { let res = [] if (root == null) { return res } let dlr=(roo... 展开全文
-
翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/invert-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题解 前序遍历从上至下交换左右值 /** * Definition for a binary tree node. * function TreeNode(val) { * th... 展开全文
-
给定二叉搜索树的根结点 root,返回 L 和 R(含)之间的所有结点的值的和。 二叉搜索树保证具有唯一的值。 示例 1: 输入:root = [10,5,15,3,7,null,18], L = 7, R = 15 输出:32 示例 2: 输入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10 输出:23 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/range-sum-of-bst 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请... 展开全文
-
给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二叉树,并且输出这个树的根节点。 示例 : 输入:[3,2,1,6,0,5] 输出:返回下面这棵树的根节点: 6 / \ 3 5 \ / 2 0 \ 1 来源:... 展开全文