获得徽章 0
110. 平衡二叉树

难度:简单

图一:
图二:题目
图三:二叉树结构
图四:解答
展开
懒星人于2021-09-07 19:34发布的图片
懒星人于2021-09-07 19:34发布的图片
懒星人于2021-09-07 19:34发布的图片
懒星人于2021-09-07 19:34发布的图片
评论
109. 有序链表转换二叉搜索树

难度:中等

图一:题目
图二:链表和二叉树的结构
图三:方法一,首先将链表转换成集合,然后进行构造
图四:方法二,利用快慢指针的方法找中位数,然后进行构造
图五:方法三,首先广度遍历构造树的结构,然后深度遍历填充树的内容
展开
懒星人于2021-09-07 15:06发布的图片
懒星人于2021-09-07 15:06发布的图片
懒星人于2021-09-07 15:06发布的图片
懒星人于2021-09-07 15:06发布的图片
懒星人于2021-09-07 15:06发布的图片
评论
108. 将有序数组转换为二叉搜索树

难度:简单

图一:题目
图二:递归解法
图三:迭代解法
展开
懒星人于2021-08-19 19:51发布的图片
懒星人于2021-08-19 19:51发布的图片
懒星人于2021-08-19 19:51发布的图片
评论
107. 二叉树的层序遍历 II

难度:中等

图一:题目
图二:解答

思路:一道简单的广度遍历题
展开
懒星人于2021-08-18 20:03发布的图片
懒星人于2021-08-18 20:03发布的图片
评论
106. 从中序与后序遍历序列构造二叉树

难度:中等

图一:题目
图二:辅助类
图三:解答
展开
懒星人于2021-08-18 19:44发布的图片
懒星人于2021-08-18 19:44发布的图片
懒星人于2021-08-18 19:44发布的图片
2
105. 从前序与中序遍历序列构造二叉树

难度:中等

图一:题目
图二:利用递归方式的解法
图三:利用迭代方式的解法
图四:迭代方式的辅助类
展开
懒星人于2021-08-05 19:49发布的图片
懒星人于2021-08-05 19:49发布的图片
懒星人于2021-08-05 19:49发布的图片
懒星人于2021-08-05 19:49发布的图片
1
103. 二叉树的锯齿形层序遍历

难度:中等

图一:题目
图二:解答

反思:多写几个例子,多画画就知道怎么写了。
展开
懒星人于2021-08-04 19:52发布的图片
懒星人于2021-08-04 19:52发布的图片
评论
102. 二叉树的层序遍历

难度:中等

图一:题目
图二:解答

想法:要注意分层
展开
懒星人于2021-08-03 17:36发布的图片
懒星人于2021-08-03 17:36发布的图片
评论
101. 对称二叉树

难度:简单

图一:题目
图二:解答

想法:虽然递归的方式写起来简单,但是尽量不用递归的方式来求解算法题,因为递归容易造成栈溢出。
展开
懒星人于2021-08-03 16:49发布的图片
懒星人于2021-08-03 16:49发布的图片
2
100. 相同的树

难度:简单

图二:利用深度遍历
图三:利用广度遍历
展开
懒星人于2021-08-02 19:55发布的图片
懒星人于2021-08-02 19:55发布的图片
懒星人于2021-08-02 19:55发布的图片
评论
99. 恢复二叉搜索树

图一:题目
图二:解法(迭代遍历)
懒星人于2021-08-02 16:51发布的图片
懒星人于2021-08-02 16:51发布的图片
2
98. 验证二叉搜索树

难度:中等

图一:题
图二:解法

思路:见图
展开
懒星人于2021-08-02 15:32发布的图片
懒星人于2021-08-02 15:32发布的图片
评论
97. 交错字符串


难度:中等

给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。

两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:
s = s1 + s2 + ... + sn
t = t1 + t2 + ... + tm
|n - m| <= 1
交错 是 s1 + t1 + s2 + t2 + s3 + t3 + ... 或者 t1 + s1 + t2 + s2 + t3 + s3 + ...

提示:a + b 意味着字符串 a 和 b 连接。

例1:
输入:s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"
输出:true

例2:
输入:s1 = "aabcc", s2 = "dbbca", s3 = "aadbbbaccc"
输出:false

例3:
输入:s1 = "", s2 = "", s3 = ""
输出:true

提示:
0 <= s1.length, s2.length <= 100
0 <= s3.length <= 200
s1、s2、和 s3 都由小写英文字母组成

思路:
图一用回溯法,但是超时了。图二用动态规划。

当一个问题能被拆解成简单的子问题,并且子问题之间是相互关联的,则可以使用动态规划的做法。

而动态规划最核心的点在于找到子问题之间的联系。
展开
懒星人于2021-07-30 19:27发布的图片
懒星人于2021-07-30 19:27发布的图片
懒星人于2021-07-30 19:27发布的图片
评论
96. 不同的二叉搜索树

难度:中等


给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

例1:
输入:n = 3
输出:5

例2:
输入:n = 1
输出:1

提示:
1 <= n <= 19

思路:和上一题类似,但是思路不一致。这里只要求数量,所以可以利用递归的思想,更简单。(如图)
展开
懒星人于2021-07-23 18:56发布的图片
评论
95. 不同的二叉搜索树 II

难度:中等
给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 (中序遍历)。可以按 任意顺序 返回答案。
例1:
输入:n = 3
输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]
例2:
输入:n = 1
输出:[[1]]
提示:
1 <= n <= 8
思路:见图(动态规划)
展开
懒星人于2021-07-23 17:43发布的图片
评论
94. 二叉树的中序遍历

难度:简单

给定一个二叉树的根节点 root ,返回它的 中序 遍历。

例一:
输入:root = [1,null,2,3]
输出:[1,3,2]

例二:
输入:root = []
输出:[]

例三:
输入:root = [1]
输出:[1]

例四:
输入:root = [1,2]
输出:[2,1]

例五:
输入:root = [1,null,2]
输出:[1,2]

提示:
树中节点数目在范围 [0, 100] 内
-100 <= Node.val <= 100

进阶:
递归算法很简单,你可以通过迭代算法完成吗?

思路:图一为递归做法;图二为迭代做法。
展开
懒星人于2021-07-20 19:08发布的图片
懒星人于2021-07-20 19:08发布的图片
懒星人于2021-07-20 19:08发布的图片
评论
93. 复原 IP 地址

难度:中等

给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。

例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。

例1:
输入:s = "25525511135"
输出:["255.255.11.135","255.255.111.35"]

例2:
输入:s = "0000"
输出:["0.0.0.0"]

例3:
输入:s = "1111"
输出:["1.1.1.1"]

例4:
输入:s = "010010"
输出:["0.10.0.10","0.100.1.0"]

例5:
输入:s = "101023"
输出:["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]

提示:
0 <= s.length <= 3000
s 仅由数字组成

思路:
见图
展开
懒星人于2021-07-02 17:34发布的图片
评论
赞了这篇沸点
leetcode前100题刷完啦!👏👏👏
老年阿童木于2020-09-11 14:48发布的图片
11
下一页
个人成就
文章被点赞 13
文章被阅读 20,140
掘力值 297
收藏集
1
关注标签
20
加入于