1.一棵树不一定等于其根节点
2.一棵树等于其根节点但非原问题
所以,不能通过根节点子树原问题 判断等不等 根节点
3.一个节点如何才能计算问题
那么如何判断呢
题单顺序01.01(基础)
遇到递归套递归,则需要反思是否可以在后序位置进行优化。
01 543. 二叉树的直径
一个节点的直径 = 子树的深度和
02 652. 寻找重复的子树*
map的使用1
构建时查重
03 124. 二叉树中的最大路径和*
题单顺序02.01(遍历+推导_后序优化1)
遍历+推导,需要思考是否能在后序位置优化
01 110. 平衡二叉树
一棵树的平衡 = 每个节点的平衡
一个节点的平衡不等其子树的平衡
06 563. 二叉树的坡度
一棵树的坡度 = 每个节点的坡度
05 508. 出现次数最多的子树元素和
map的使用2:
构建时计算最大的v
08 1325. 删除给定值的叶子节点(待定位置)
后序推导
02 250. 统计同值子树🔒
03 333. 最大 BST 子树🔒
04 366. 寻找二叉树的叶子节点🔒
07 549. 二叉树中最长的连续序列🔒
题单顺序02.02(遍历+推导_后序优化2)
01 687. 最长同值路径*
一个节点的同值路径 = 其子树同值深度之和
后序优化不能乱剪枝*
02 1026. 节点与其祖先之间的最大差值*
计算一个节点的最大差值
pair的使用*
04 1372. 二叉树中的最长交错路径*
计算一个节点的最长交错路径
pair的使用*
03 1339. 分裂二叉树的最大乘积*
计算一个节点的乘积
05 865. 具有所有最深节点的最小子树*(待定位置-非遍历推导)
一棵树 = 其根节点 但 != 原问题
前序与后序的区别
06 663. 均匀树划分🔒
07 1120. 子树的最大平均值🔒
08 1245. 树的直径🔒
题单顺序02.03(综合)
02 1080. 根到叶路径上的不足节点(遍历)
03 2049. 统计最高分的节点数目(遍历)
01 979. 在二叉树中分配硬币(遍历)
04 968. 监控二叉树(遍历)
反面例子
437. 路径总和 III*
572. 另一棵树的子树 == LCR 143. 子结构判断
遍历推导,不能优化