
LeetCode
放开这颗白菜让我来
微信公众号“放开这颗白菜让我来”
哥拱的不仅仅是白菜,是寂寞
展开
-
leetcode_树_543. 二叉树的直径(#)
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树1/ \2 3/ \4 5返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数原创 2020-11-01 21:38:08 · 224 阅读 · 0 评论 -
leetcode_树_501. 二叉搜索树中的众数(#)
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2],1\ 2/2返原创 2020-10-29 19:02:15 · 133 阅读 · 0 评论 -
leetcode_树_257. 二叉树的所有路径(#)
一、题目内容给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入:1/ \2 3\5输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3二、解题思路使用深度优先便利,设置一个参数把路径保存出来,需要注意的是,这里为了让效率搞一些使用了StringBuilder这个类,我还特地查了一下String与StringBuilder,S原创 2020-10-28 22:00:07 · 194 阅读 · 0 评论 -
leetcode_树_235. 二叉搜索树的最近公共祖先(#)
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。一、题目内容给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1原创 2020-10-27 10:01:40 · 128 阅读 · 0 评论 -
leetcode_树_226. 翻转二叉树
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。2020/10/27 早晨leetcode打卡第一题。文章目录一、题目内容二、解题思路三、代码实现一、题目内容翻转一棵二叉树。示例:输入:4/ 2 7/ \ / \1 3 6 9输出:4/ \7 2/ \ / \9 6 3 1二、解题思路递归,使用框架思想,框架使用的简直不要太爽,虽然现在刷的原创 2020-10-27 09:20:24 · 179 阅读 · 0 评论 -
leetcode_树_111. 二叉树的最小深度
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2二、解题思路这道题与求最大深度相反,但是脑子第一蹦出的不是这个思路,而是使用层序遍历,可能我是原创 2020-10-26 22:26:24 · 200 阅读 · 0 评论 -
leetcode_树_101. 对称二叉树
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3二、解题思路这跟上一题是一样的,只不过上一题是两个树进行比较,这里是同一棵树的两个部分进项比较,题目说使用递归和迭代分别实现,递归比原创 2020-10-25 23:23:07 · 195 阅读 · 0 评论 -
leetcode_树_100. 相同的树
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]原创 2020-10-25 23:00:59 · 168 阅读 · 0 评论 -
leetcode_树_剑指 Offer 54. 二叉搜索树的第k大节点
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给定一棵二叉搜索树,请找出其中第k大的节点。输入: root = [3,1,4,null,2], k = 13/ \1 4\2输出: 4二、解题思路二叉搜索树他有一个特点,中序遍历的话,是升序排列,我们可以想一个办法让其降序,然后设置一个计数器,找到第k大的数,也就是从第一个开始数,数k个数。原创 2020-10-24 19:47:42 · 170 阅读 · 0 评论 -
leetcode_树_897. 递增顺序查找树
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8原创 2020-10-24 11:44:59 · 162 阅读 · 0 评论 -
leetcode_树_94. 二叉树的中序遍历(前序中序后序迭代讲解)
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录文章目录一、题目内容二、解题思路1、前序遍历2、中序遍历3、后序遍历三、代码实现一、题目内容给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]1\ 2/3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?二、解题思路通过这道题,我们把三种遍历的迭代方式做个系统的归纳总结。1、前序遍历我原创 2020-10-24 10:28:28 · 195 阅读 · 0 评论 -
leetcode_树_剑指 Offer 32 - II. 从上到下打印二叉树 II(102. 二叉树的层序遍历)
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]二、解题思路这与前面的一题相似,方法借用原创 2020-10-23 21:30:33 · 204 阅读 · 4 评论 -
leetcode_树_589. N叉树的前序遍历
大家好,我是被白菜拱的猪。一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。文章目录一、题目内容二、解题思路三、代码实现一、题目内容给定一个 N 叉树,返回其节点值的前序遍历。例如,给定一个 3叉树 :返回其前序遍历: [1,3,5,6,2,4]。说明: 递归法很简单,你可以使用迭代法完成此题吗?二、解题思路题目明确的说明要使用迭代的方法完成此题,读完题目一脸懵逼的我搜了搜二叉树如何使用迭代的方法前序遍历,这题很简单就是考你迭代前序原创 2020-10-23 20:12:53 · 249 阅读 · 0 评论