589. N叉的前序遍历
code
1 | class Solution { |
897. 递增顺序查找树
code
1 | class Solution { |
剑指 Offer 54. 二叉搜索树的第k大节点
code
1 | class Solution { |
110. 平衡二叉树
code
1 | class Solution { |
112. 路径总和
code
1 | class Solution { |
官方题解bfs;
1 | class Solution { |
1022. 从根到叶的二进制数之和
code
1 | class Solution { |
和上一题类似,显然这题也可以用bfs
606. 根据二叉树创建字符串
code
这题有点垃圾,题意含糊不清;
1 | class Solution { |
617. 合并二叉树
code
1 | class Solution { |
104. 二叉树的最大深度
code
1 | class Solution { |
当然还可以用bfs求;
102. 二叉树的层序遍历
code
1 | class Solution { |
dfs版
1 | class Solution { |
107. 二叉树的层序遍历 II
1 | class Solution { |
226. 翻转二叉树
code
1 | class Solution { |
235. 二叉搜索树的最近公共祖先
code
官方题解,需要注意这是一颗二叉搜索树
1 | class Solution { |
100. 相同的树
code
1 | class Solution { |
530. 二叉搜索树的最小绝对差
code
1 | class Solution { |
404. 左叶子之和
code
1 | class Solution { |
965. 单值二叉树
code
1 | class Solution { |
669. 修剪二叉搜索树
这里注意引用的使用,引用和指针是不一样的;把dfs函数里的*、&改成*就错了;
code
1 | class Solution { |
993. 二叉树的堂兄弟节点
code
啊啊啊,看我这丑陋的代码,太糟糕了;
1 | class Solution { |
653. 两数之和 IV - 输入 BST
code
1 | class Solution { |
543. 二叉树的直径
code
dfs版
1 | class Solution { |
671. 二叉树中第二小的节点
题解
对于这颗特殊的二叉树,需要求第二小的数;
由题意,根一定是最小的,记录下根的数值\(a\),搜索这棵树,找满足大于\(a\)的最小值;
一开始思路错了,其实如果在搜索过程中把子树的最小值返回也是一样的,如果根的两个子树的最小值相同,那就需要递归的到两颗子树里面找;
注意下面代码的第三行minm = 1ll << 32
,因为minm
是long long
,如果是int
,左移最多只能进行31次,否则会报错;因此需要写成1ll
;
code
1 | class Solution { |
637. 二叉树的层平均值
code
1 | class Solution { |
559. N 叉树的最大深度
code
bfs
1 | class Solution { |
dfs
1 | class Solution { |
面试题 04.02. 最小高度树
code
1 | class Solution { |
700. 二叉搜索树中的搜索
code
1 | class Solution { |
938. 二叉搜索树的范围和
code
1 | class Solution { |
111. 二叉树的最小深度
code
1 | class Solution { |
590. N叉树的后序遍历
code
1 | class Solution { |
872. 叶子相似的树
code
1 | class Solution { |
257. 二叉树的所有路径
使用to_string()
将数字转化为字符串,(char)(number + '0')
这种方法只使用于一位正数;
code
1 | class Solution { |
563. 二叉树的坡度
code
1 | class Solution { |
572. 另一个树的子树
写了一个比较好想的方法,官方题解放了kmp、树哈希之类的;
code
1 | class Solution { |
236. 二叉树的最近公共祖先
code
写了一个比较笨的方法,就是统计根节点到要查询的节点的路径,然后从根节点进行比较,找到第一个不同的父节点之前的父节点即为答案;
1 | class Solution { |
这是官方解,当发现p
和q
分别位于某个子树的两个分支里时,那么当前节点就是他们的最近公共祖先;
还一种方法是用map
记录路径;
1 | class Solution { |