BST插入节点问题
题目
时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
给定一棵包含 N 个节点的二叉树,节点编号是 1 ∼ N。
其中 i 号节点具有 权值 Wi,并且这些节点的权值恰好形成了一棵排序二叉树 (BST)。
现在给定一个节点编号 K,小明想知道,在这 N 个权值以外,
有多少个整 数 X (即 X 不等于任何 Wi ) 满足:
给编号为 K 的节点增加一个权值为 X 的子 节点,仍可以得到一棵 BST。
例如在下图中,括号外的数字表示编号、括号内的数字表示权值。
即编号 1∼4 的节点权值依次是 0、10、20、30。
思路
看数据量和内存限制,直接开空间就完事.创建完树,就dfs确定所有值,这个方法最简单。考场上以我的智商肯定
没空去找约束条件 %%%大佬 。我不会写快写,就只有用流包装一下了
这个题,复杂度其实应该是on,空间o1 的做法,但是很不好意思,虽然我写过人体蜈蚣算法,我依旧是个垃圾。
代码
import java.io.BufferedInputStream;
import java.util.*;
public class bst插入重写 {
/**
* 根据二叉树的性质,建立映射关系,用数组存储所有节点的索引,并根据当前输入值,确定是父节点的左边还是右边
* 然后on 复杂度算出需要多少个
* */
public static void main(String[] args) {
Scanner sc = new Scan