import java.util.ArrayDeque;
import java.util.Queue;
/**
* @author xnl
* @Description:
* @date: 2022/7/25 21:15
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
CBTInserter node = new CBTInserter(new TreeNode(1, new TreeNode(2), null));
node.insert(3);
node.insert(4);
node.print();
}
}
class CBTInserter {
Queue<TreeNode> candidate;
TreeNode root;
public CBTInserter(TreeNode root) {
this.root = root;
candidate = new ArrayDeque<>();
Queue<TreeNode> queue = new ArrayDeque<>();
queue.offer(root);
while (!queue.isEmpty()){
TreeNode poll = queue.poll();
if (poll.left != null){
queue.offer(poll.left);
}
if (poll.right != null){
queue.offer(poll.right);
}
if (!(poll.left != null && poll.right != null)){
candidate.offer(poll);
}
}
}
public int insert(int val) {
TreeNode node = candidate.peek();
TreeNode cur = new TreeNode(val);
int res = node.val;
if (node.left == null){
node.left = cur;
} else {
node.right = cur;
candidate.poll();
}
candidate.offer(cur);
return res;
}
public TreeNode get_root() {
return root;
}
public void print(){
this.root.print();
}
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
public void print(){
System.out.print(this.val + " ");
if (this.left != null){
this.left.print();
}
if (this.right != null){
this.right.print();
}
}
}
相关推荐
蓝桥杯嵌入式(基础教程)STM32G431RBT6——创建工程以及点灯
首先选择正确的芯片类型:STM32G431RBT6工程的创建主要有配置时钟以及烧录的方式。在配置好之后需要对时钟进行配置,由于蓝桥杯的外部晶振是24MHz因此需要对时钟树进行相应的配置。第一步先点击时钟配置之后就可以对时钟进行相应的配置了最后一步,需要对工程起一个名字,并且要选择KEIL做为其相应的软件之后再需要再生成代码那里进行相应的控制。当然这样根据生成的工程不能直接使用会有一个报错,所以需要添加一个启动文件。这个启动文件可以在官方的LCD文件夹下复制到自己的工程中。
LeetCode-919-完全二叉树插入器
LeetCode-1184-公交站间的距离
Python爬虫实战:使用最新技术抓取百度贴吧帖子内容
本文详细介绍了使用Python最新技术抓取百度贴吧帖子的完整流程。通过库,我们实现了高效的异步爬虫,具备JavaScript渲染、智能反爬应对、数据持久化等高级功能。这个爬虫框架具有良好的扩展性,可以根据具体需求进行功能增强。
Leetcode 919:完全二叉树插入器
题目描述 完全二叉树是每一层(除最后一层外)都是完全填充(即,结点数达到最大)的,并且所有的结点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构CBTInserter,它支持以下几种操作: CBTInserter(TreeNode root)使用头结点为root的给定树初始化该数据结构; CBTInserter.insert(int v)将TreeNode插入到存...
Python爬虫实战:实时监控美国SEC官网文件更新,助你第一时间掌握市场动态
在资本市场中,信息就是财富。美国证券交易委员会(SEC)官网公开了大量公司披露文件,涵盖财报、招股说明书、内幕交易等重要信息。对投资者、分析师及法律合规人员来说,实时监控这些公开文件具有重要价值。
Unity Hololens2开发|(一)环境配置
开发过程中预览和调试应用:可以在电脑上的 Unity 编辑器中以播放模式本地运行应用,并将体验流式传输到 HoloLens2。将来自 HoloLens2 的输入(视线、手势、语音和空间映射)发送到电脑,在其中内容以虚拟沉浸式视图渲染。在HoloLens2设备中,打开Settings面板,依次选择Update & Security > For Developers,打开“Developer Mode”。在开发计算机中打开控制面板,依次选择“更新和安全> 开发者选项”,打开“开发人员模式”;
leetcode-919:完全二叉树插入器
使树保持完全二叉树的状态,并返回插入节点TreeNode的父节点的值;完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。如果每次插入的时候都进行层序遍历,那么如果在插入情况比较多的时候,效率会很低。设计一种算法,将一个新节点插入到一个完整的二叉树中,并在插入后保持其完整。初始化的时候将情况1,存储在q_L队列中,将情况2,存储在q_R队列中。由于完全二叉树的特性,插入的时候,优先从q_R队列中取值。......
AI应用架构师视角:AI技术引发的全球经济格局重构,你看懂了吗?
本文将从AI应用架构师的独特视角,拆解AI技术栈(算力/算法/数据)如何通过"架构渗透"重塑产业价值链,分析中美欧等主要经济体的AI战略差异如何改写全球分工格局,并为企业与个人提供一套可落地的"AI经济适应性框架"。当OpenAI的GPT-4在代码生成、多模态理解上展现出超越人类的能力,当英伟达的H100芯片成为全球科技巨头争抢的"数字石油",当中国的AI大模型在电商、金融等场景实现规模化落地——我们正站在一场由AI技术引发的全球经济重构的临界点上。AI重构全球经济格局的过程,既是挑战,更是机遇。
Leetcode 919:完全二叉树插入器(最详细的解法!!!)
完全二叉树是每一层(除最后一层外)都是完全填充(即,结点数达到最大)的,并且所有的结点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构 CBTInserter,它支持以下几种操作: CBTInserter(TreeNode root) 使用头结点为 root 的给定树初始化该数据结构; CBTInserter.insert(int v) 将 TreeNode 插入到存在值为 node...
vue2学习笔记2-老规矩,从Hello World开始,了解Vue实例和模板
想要把“Hello,World”放置在页面上,首先需要准备一个HTML的块级元素div,来承接内容。
芒果YOLOv12改进13:独家原创改进最新 CFNet 核心结构|即插即用 | 首发改进显著提升检测性能,小目标检测涨点必备
芒果YOLOv12改进13:独家原创改进最新 CFNet 核心结构|即插即用 | 首发改进显著提升检测性能,小目标检测涨点必备
图解LeetCode——919. 完全二叉树插入器(难度:中等)
是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。设计一种算法,将一个新节点插入到一个完整的二叉树中,并在插入后保持其完整。获得头元素之后,将新节点放入该节点的左侧或者右侧,如果是放入右侧,则说明该头元素的左右叶子节点都已经存在了,那么就通过调用。首先,根据题目要求,先按照每层去添加数据,在同一层中,从左到右去添加节点。//返回[1,2,3,4]当我们需要插入新的节点的时候,首先,将创建的新节点放入到。的节点,放入的另一个队列(...
[Python图像识别] 五十二.水书图像识别 (2)基于机器学习的濒危水书古文字识别研究
上一篇文章详细讲解如何利用数据增强方法实现图像数据集的扩充,并以濒危水书作为案例讲解。这篇文章将详细讲解基于机器学习的水书图像识别方法,以图像像素统计为特征开展图像分类讲解,这是最基础的方法,也为后续深度学习图像分类描述提供支撑。基础性文章,希望对您有所帮助!让我们开始吧,且看且珍惜。
JAVA程序设计:完全二叉树插入器(LeetCode:919)
完全二叉树是每一层(除最后一层外)都是完全填充(即,结点数达到最大)的,并且所有的结点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构CBTInserter,它支持以下几种操作: CBTInserter(TreeNode root)使用头结点为root的给定树初始化该数据结构; CBTInserter.insert(int v) 将TreeNode插入到存在值为node.val =v的树中以使其保持完全二叉树的状态,并返回插入的 TreeNode的父结点的值; CBTI...
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
leetcode919. 完全二叉树插入器,队列只保存右子树为空的节点
leetcode919. 完全二叉树插入器,队列只保存右子树为空的节点
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
LeetCode 919. 完全二叉树插入器
二叉树的深度优先搜索
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
python-leetcode-919. 完全二叉树插入器
可以使用一个队列来维护完全二叉树的层次结构,确保插入的新节点始终满足完全二叉树的特性。以下是。
leetcode刷题记录 919 完全二叉树插入器
leetcode 919 完全二叉树插入器 解题思路: 构造器:声明两个成员变量head(头结点)和队列deque,head指向传进来的树的头结点,然后使用两个双向队列,deque用来存放孩子结点为0或者1的结点,queue用来存放每一层的结点; **插入:**取出deque的第一个结点node即为最左边第一个插入的点,将要插入的结点插入deque最后,以便以后的插入。然后按照从左到右判断node结点的孩子结点是否为空,为空就插入; 返回头结点:直接返回头结点head。 class CBTInserte
919. 完全二叉树插入器
完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。操作而言,我们要在数组(层序遍历顺序)中找到首个「存在左右空子节点」的父节点。设计一种算法,将一个新节点插入到一个完整的二叉树中,并在插入后保持其完整。这是LeetCode上的[919.完全二叉树插入器],难度为。层序遍历(由于仍要保留层序遍历顺序,因此使用下标指针。节点的过程数组下标单调递增,因此可以使用全局变量。Tag「模拟」、「BFS」、「树的遍历」添加到当前树后,需要将。...
Leetcode 919.完全二叉树插入器(Complete Binary Tree Inserter)
Leetcode 919.完全二叉树插入器 1 题目描述(Leetcode题目链接) 完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构 CBTInserter,它支持以下几种操作: CBTInserter(TreeNode root) 使用头节点为 root 的给定树初始化该数据结构; CBTInserter.insert(int v) 向树中插入一个新节点,节点类型为 TreeNode,值为 v 。使
小白学习[leetcode]之919完全二叉树插入
题目的链接在这里: https://leetcode-cn.com/problems/complete-binary-tree-inserter/ 目录题目大意一、示意图二、解题思路使用C++来写 题目大意 完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构 CBTInserter,它支持以下几种操作: CBTInserter(TreeNode root) 使用头节点为 root 的给定树初始化该数据结构;
类中多函数填写,LeetCode919——完全二叉树插入器
完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。设计一种算法,将一个新节点插入到一个完整的二叉树中,并在插入后保持其完整。实现CBTInserter类CBTInserter(TreeNoderoot)使用头节点为root的给定树初始化该数据结构;CBTInserter.insert(intv)向树中插入一个值为Node.val==val的新节点TreeNode。...
LeetCode 919. 完全二叉树插入器 (层次遍历)
完全二叉树插入器 思路: 先用层次遍历获得整棵树的节点,存在vector<TreeNode*> tree里面,然后即将插入的元素的序号就是tree.size()+1,然后获取父亲节点的序号,再分左右插入即可。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int
919. 完全二叉树插入器 : 简单 BFS 运用题
题目描述 这是 LeetCode 上的 「919. 完全二叉树插入器」 ,难度为 「中等」。 Tag : 「模拟」、「BFS」、「树的遍历」 完全二叉树 是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。 设计一种算法,将一个新节点插入到一个完整的二叉树中,并在插入后保持其完整。 实现 CBTInserter 类: CBTInserter(TreeNode root) 使用头节点为 root 的给定树初始化该数据结构;CBTIn
leetcode【中等】919、完全二叉树插入器
完全二叉树 是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。 设计一种算法,将一个新节点插入到一个完整的二叉树中,并在插入后保持其完整。 实现 CBTInserter 类: CBTInserter(TreeNode root) 使用头节点为 root 的给定树初始化该数据结构; CBTInserter.insert(int v) 向树中插入一个值为 Node.val == val的新节点 TreeNode。使树保持完全二叉树的状态,并返回插入节点 Tree
LeetCode 919. 完全二叉树插入器(层序遍历&队列)
1. 题目 完全二叉树是每一层(除最后一层外)都是完全填充(即,结点数达到最大)的,并且所有的结点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构 CBTInserter,它支持以下几种操作: CBTInserter(TreeNode root) 使用头结点为 root 的给定树初始化该数据结构; CBTInserter.insert(int v) 将 TreeNode 插入到存在值...
1093



被折叠的 条评论
为什么被折叠?



