
LeetCode-树
树相关的题目
「已注销」
好好学习,天天向上
展开
-
502.IPO-Java
502.IPO-Java题目描述假设 力扣(LeetCode)即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。最初,你的资本为 w 。当你完成一个项目时,你将获得纯利润,且利润将原创 2021-09-08 10:51:50 · 285 阅读 · 0 评论 -
面试题17.14.最小K个数Java
面试题17.14.最小K个数Java题目描述设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可输入输出样式示例1:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]本题来自LeetCode:https://leetcode-cn.com/problems/smallest-k-lcci/思路方法一:将数组排序后,返回最小的K个数方法二:利用堆。先将数组的前k个数插入大堆顶,然后依次将剩下的数比较,如果当前数比大堆顶的顶的数还要原创 2021-09-07 10:47:21 · 287 阅读 · 0 评论 -
671.二叉树中第二小的节点Java
671.二叉树中第二小的节点Java题目描述给定一个非空特殊的二叉树,每个节点都为正数,输入输出样式示例1:输入:n = 27输出:true示例2:输入:n = 0输出:false本题来自LeetCode:https://leetcode-cn.com/problems/power-of-three/思路迭代。一直将当前数字%3的余数为零就将其循环除3。算法分析时间复杂度O(logb (n))b为迭代的次数,空间复杂度为O(1)求解函数public boolean isP原创 2021-08-11 11:24:13 · 148 阅读 · 0 评论 -
98.验证二叉搜索树Java
98.验证二叉搜索树Java题目描述给定一个二叉树,判断它是不是一个有效的二叉搜索树。二叉搜索树满足:节点的左子树只包含小于当前节点的数;节点的右子树只包含大于当前节点的数;所有左子树和右子树自身必须也是二叉搜索树。输入输出样式示例1:tn = [1, null, 2, 3]输出:[1, 3, 2]示例2:tn = [1, 2]输出:[2, 1]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-inorder-trav原创 2021-07-17 21:40:24 · 228 阅读 · 1 评论 -
145.二叉树的后序遍历Java
145.二叉树的后序遍历Java题目描述给定一个二叉树的根节点root,返回它的后序遍历顺序。输入输出样式示例1:tn = [1, null, 2, 3]输出:[3, 2, 1]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/思路非递归的方法,用到栈。算法分析时间复杂度O(n),空间复杂度为O(n)求解函数public List<Integer> inOrd原创 2021-07-17 21:16:27 · 147 阅读 · 0 评论 -
94.二叉树的中序遍历Java
94.二叉树的中序遍历Java题目描述给定一个二叉树的根节点root,返回它的中序遍历顺序。输入输出样式示例1:tn = [1, null, 2, 3]输出:[1, 3, 2]示例2:tn = [1, 2]输出:[2, 1]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/思路非递归的方法,用到栈。与非递归前序遍历基本相同。不同的在于,前序在寻找最左下方的节点的同时将当前遍历原创 2021-07-17 16:43:53 · 193 阅读 · 0 评论 -
144.二叉树的前序遍历Java
144.二叉树的前序遍历Java题目描述给定一个二叉树的根节点root,返回它的前序遍历顺序。输入输出样式示例1:tn = [1, null, 2, 3]输出:[1, 2, 3]示例2:tn = [1, 2]输出:[1, 2]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/思路非递归的方法,用到栈。首先把将输入树根一直遍历到最左下方的节点,再返回,同时判断右子树的情况,进原创 2021-07-17 16:27:18 · 162 阅读 · 0 评论 -
101.对称二叉树Java
101.对称二叉树Java题目描述给定一个二叉树,检查它是否是镜像对称的。输入输出样式示例1:tn = [1,2,2,3,4,4,3]输出:true示例2:tn = [1,2,2,null,3,null,3]输出:false本题来自LeetCode:https://leetcode-cn.com/problems/symmetric-tree/思路利用递归的思想,一棵树是否满足镜像对称,比较左右两个子树,且左子树的左子树要和右子树的右子树比较。算法分析时间复杂度O(n),原创 2021-07-13 15:37:28 · 226 阅读 · 0 评论 -
102.二叉树的层序遍历Java
102.二叉树的层序遍历Java题目描述给你一个二叉树,请你返回其按层次遍历得到的节点值。即逐层从左到右访问所有节点。输入输出样式示例1:tn = [3,9,20,null,null,15,7]输出:[[3], [9, 20], [15, 7]]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/思路利用队列完成对二叉树的层次遍历, 初始化将根节点入队,在当前的队列非空则进行出原创 2021-07-13 10:38:19 · 149 阅读 · 0 评论 -
根据二维数组创建二叉树Java
根据二维数组创建二叉树Java在LeetCode刷题的时候,遇到二叉树的题目,想要自己在Idea上调试,发现不回创建二叉树。查了资料后,记录一下,根据二维数组递归创建二叉树。public TreeNode createBTree(int []array, int index) { TreeNode tn = null; if (index < array.length) { int value = array[index];原创 2021-07-12 21:06:40 · 1056 阅读 · 0 评论 -
104.二叉树的最大深度Java
104.二叉树的最大深度Java题目描述给定一颗二叉树,返回该二叉树的最大深度。输入输出样式示例1:给定二叉树 [3,9,20,null,null,15,7]本题来自LeetCode:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/思路方法一:深度优先遍历(递归),以当前遍历节点为根节点的二叉树的最大深度为Max(左子树的深度,右子树的深度) + 1. 这就是整个递归的主要思想。方法二:广度优先遍历,每次将一原创 2021-07-12 17:30:14 · 224 阅读 · 0 评论