Leetcode
雨菁ling
一个程序员的进阶路。
展开
-
704.二分查找——JavaScript和Java实现
题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示:你可以假设 nu原创 2021-08-16 21:54:53 · 174 阅读 · 0 评论 -
102. 二叉树的层序遍历——Java实现
题目描述:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],返回其层次遍历结果:[[3],[9,20],[15,7]]Java代码:核心代码: public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new Ar原创 2020-12-15 13:53:00 · 237 阅读 · 0 评论 -
101. 对称二叉树——Java实现
题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:Java代码:核心代码: public boolean isSymmetric(TreeNode root) { return check(root, root); } public boolean check(TreeNode p, TreeNode q){ i原创 2020-12-09 15:49:47 · 236 阅读 · 0 评论 -
98. 验证二叉搜索树——Java实现
题目描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:输出: true示例 2:输入:输出: false解释: 输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 。Java代码:核心代码: List<Integer> res = new Array原创 2020-12-09 15:14:35 · 152 阅读 · 0 评论 -
94. 二叉树的中序遍历——Java实现
题目描述:给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100代码实原创 2020-12-09 11:51:30 · 570 阅读 · 0 评论 -
99. 恢复二叉搜索树——Java实现
题目描述:给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?示例 1:输入:root = [1,3,null,null,2]输出:[3,1,null,null,2]解释:3 不能是 1 左孩子,因为 3 > 1 。交换 1 和 3 使二叉搜索树有效。示例 2:输入:root = [3,1,4,null,null,2]输出:[2,1,4,n原创 2020-12-06 17:50:24 · 282 阅读 · 0 评论 -
106. 从中序与后序遍历序列构造二叉树——Java实现
题目描述:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:Java代码:核心代码: private Map<Integer, Integer> inMap; public TreeNode myBuildTree(int[] inorder, int[] postorder, int istart原创 2020-12-06 15:50:59 · 393 阅读 · 1 评论 -
105. 从前序与中序遍历序列构造二叉树——Java实现
题目描述:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:Java代码:核心代码:private static Map<Integer, Integer> inMap; public static TreeNode myBuildTree(int[] preorder, int[] inorde原创 2020-12-04 22:47:52 · 320 阅读 · 0 评论 -
124. 二叉树中的最大路径和——Java实现
题目描述:给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。、示例 1:输入:[1,2,3] 1 / \ 2 3输出:6示例 2:输入:[-10,9,20,null,null,15,7]-10/ 9 20/ 15 7输出:42Java代码:核心代码:static int ans = Integer.MIN_VALUE; pu原创 2020-12-04 20:02:02 · 976 阅读 · 0 评论