modify code

master
algorithmzuo 2 years ago
parent 1d60dbe1b9
commit c047c3caeb

@ -67,11 +67,19 @@ public class Code03_BiggestBSTTopologyInTree {
while (tmp < h && record[tmp] != 0) {
tmp = tree[tmp][2];
}
// 不用沿途修改所有节点的记录了
// 因为再往上遍历的节点,边界最多包括当前的头节点 + 左孩子 + 一直往左
// 所以只需要修改左孩子的边界即可
// 也就是说,从当前节点的左孩子的右孩子开始,一直往右的所有点都不会再遇到了
record[l] -= record[tmp];
tmp = r;
while (tmp > h && record[tmp] != 0) {
tmp = tree[tmp][1];
}
// 不用沿途修改所有节点的记录了
// 因为再往上遍历的节点,边界最多包括当前的头节点 + 右孩子 + 一直往左
// 所以只需要修改右孩子的边界即可
// 也就是说,从当前节点的右孩子的左孩子开始,一直往左的所有点都不会再遇到了
record[r] -= record[tmp];
record[h] = record[l] + record[r] + 1;
return Math.max(Math.max(p1, p2), record[h]);

Loading…
Cancel
Save