蓝桥杯2020年真题:BST插入节点问题

本文详细介绍了2020年蓝桥杯比赛中关于BST(二叉搜索树)的插入节点问题,包括题目的具体要求,解题思路以及对应的代码实现,帮助读者理解并掌握BST节点插入操作。
摘要由CSDN通过智能技术生成

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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值