![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
Adsh
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。
人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
展开
-
88合并两个数组
合并两个有序数组 https://leetcode-cn.com/problems/merge-sorted-array/ 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。 Version1:插入排序 public static void merge(int原创 2021-05-13 22:33:27 · 81 阅读 · 0 评论 -
114路径总和2
路径总和2 https://leetcode-cn.com/problems/path-sum-ii 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点 public class PathSum2 { public List<List<Integer>> pathSum(TreeNode root, int targetSum) { List<原创 2021-05-13 22:32:52 · 87 阅读 · 0 评论 -
112路径总和
路径总和 https://leetcode-cn.com/problems/path-sum/ 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 叶子节点 是指没有子节点的节点 public class PathSum { //定义一个静态变量,只要在递归过程中有一条路径符合,isSum就会改变为true,如果一条也没有符合的路径,将一直是false。 publ原创 2021-05-13 22:32:17 · 124 阅读 · 0 评论 -
98验证二叉搜索树
验证二叉搜索树 https://leetcode-cn.com/problems/validate-binary-search-tree/ 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 Version1:递归 public class BST { public boolean isValidBST(TreeNode root){原创 2021-05-13 22:31:47 · 58 阅读 · 0 评论 -
110平衡二叉树
平衡二叉树 https://leetcode-cn.com/problems/balanced-binary-tree 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 public class BalanceTree { public boolean isBalanced(TreeNode root){ //只需返回根节点的Info类的isBalance信息即可 ret原创 2021-05-13 22:30:40 · 80 阅读 · 0 评论 -
207二叉树的层次遍历2
二叉树的层次遍历2 https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/ 给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) public class LevelOrder { public List<List<Integer>> levelOrderBottom(TreeNode root){ //如果root为原创 2021-05-13 22:29:59 · 62 阅读 · 0 评论 -
105先序中序建立一棵二叉树
先序中序建立一棵二叉树 https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 根据一棵树的前序遍历与中序遍历构造二叉树。 Version1 public class BuildTree { public TreeNode buildTree(int[] pre, int[] in) { //头结点为空,或者两者长度不等,都返回null。 i原创 2021-05-13 22:29:08 · 89 阅读 · 0 评论 -
104二叉树的深度
二叉树的深度 https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 public class TreeDepth { public int maxDepth(TreeNode root) { if(root==null)return 0; //返回左子树高度和右子树高度的最大值,最大值加1为整棵树的高度。原创 2021-05-13 22:28:18 · 49 阅读 · 0 评论 -
101对称二叉树
对称二叉树 https://leetcode-cn.com/problems/symmetric-tree/ 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的 public class SymmetricTree { public boolean isSymmetric(TreeNode root) { return isSymme(root,root); } public boolean isSymme(原创 2021-05-13 22:27:48 · 60 阅读 · 0 评论 -
100相同的树
相同的树 https://leetcode-cn.com/problems/same-tree/ 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 输入:p = [1,2,3], q = [1,2,3] 输出:true 输入:p = [1,2], q = [1,null,2] 输出:false 输入:p = [1,2,1], q = [1,1,2] 输出:false public class SameT原创 2021-05-13 22:26:59 · 51 阅读 · 0 评论 -
23多个链表合并
合并K个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1->4->5, 1->3->4, 2->6 ] 将它们合并到一个有序链表中得到。 1->1->2->3->4->4->5->6 输入:lists = [] 输出:[] 输原创 2021-05-13 22:26:22 · 395 阅读 · 0 评论 -
7整数翻转
整数翻转 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号) 输入:x = 123 输出:321 输入:x = -123 输出:-321 输入:x = 120 输出:21 输入:x = 0 输出:0 下面图片是得到判断越界条件【rev<(Integer.MIN_VALUE/10)||rev>(Integ原创 2021-05-13 22:25:29 · 71 阅读 · 0 评论 -
25k个一组翻转链表
k个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 输入:head = [1,2,3,4,5], k = 2 输出:[2,1,4,3,5] 输入:head = [1,2,3,4,5], k = 3 输出:[3,2,1,4,5] 输入:head = [1,2,3,4,5], k = 1 输出:[1,2,3,4,5] 输入:head = [1], k原创 2021-05-13 22:16:13 · 75 阅读 · 0 评论 -
2021-5-6 第5天第6题
翻转链表 给你单链表的头节点 head,请你反转链表,并返回反转后的链表。 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 输入:head = [1,2] 输出:[2,1] 输入:head = [] 输出:[] Code public ListNode reverseList(ListNode head) { //last指向上一个节点 ListNode last=null; //pre指向下一个遍历的节点 ListNode pre=nu原创 2021-05-06 23:12:37 · 105 阅读 · 0 评论 -
2021-5-6 第五天第五题
合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 输入:l1 = [], l2 = [] 输出:[] 输入:l1 = [], l2 = [0] 输出:[0] Code public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //如果两个链表有一个为空,则返回不原创 2021-05-06 23:10:33 · 60 阅读 · 0 评论 -
2021-5-4 第四天第四题
寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2 输入:nums1 = [1,2], nums2 = [3,4] 输出:2.50000 解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5 输入:nums1 = [0,0], nums原创 2021-05-04 20:14:45 · 85 阅读 · 0 评论 -
2021-5-3 第三天第三题
无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串原创 2021-05-03 21:21:59 · 70 阅读 · 0 评论 -
2021-5-2 第二天第二题
两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 输入:l1 = [0], l2 = [0] 输出:[0] 输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9原创 2021-05-02 22:43:56 · 117 阅读 · 0 评论 -
2021-5-1 第一天第一题
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 输入:nums = [3,2,4], target = 6 输出:[1,2] 输入:nums = [3,3], target = 6 输出:[0,1] Version1 下面原创 2021-05-02 17:52:55 · 142 阅读 · 0 评论