LeetCode题解(0919):设计完全二叉树插入器(Python)
题目:原题链接(中等)
标签:树、二叉树、广度优先搜索、设计
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O(N)O(N)O(N) | O(N)O(N)O(N) | 100ms (20.69%) |
Ans 2 (Python) | O(N)O(N)O(N) | O(N)O(N)O(N) | 76ms (80.00%) |
Ans 3 (Python) |
解法一:
class CBTInserter:def __init__(self, root: TreeNode):self.root = rootself.queue = collections.deque([root])while True:if self.queue[0].left:self.queue.append(self.queue[0].left)else:breakif self.queue[0].right:self.queue.append(self.queue[0].right)self.queue.popleft()else:breakdef insert(self, v: int) -> int:if not self.queue[0].left:self.queue[0].left = TreeNode(v)self.queue.append(self.queue[0].left)return self.queue[0].valelse:self.queue[0].right = TreeNode(v)self.queue.append(self.queue[0].right)return self.queue.popleft().valdef get_root(self) -> TreeNode:return self.root
解法二(不再从列表中删除结点):
class CBTInserter:def __init__(self, root: TreeNode):self.queue = [root]for node in self.queue:if node.left:self.queue.append(node.left)else:breakif node.right:self.queue.append(node.right)else:breakdef insert(self, v: int) -> int:self.queue.append(TreeNode(v))idx, sub = divmod(len(self.queue), 2)if sub == 0:self.queue[idx - 1].left = self.queue[-1]else:self.queue[idx - 1].right = self.queue[-1]return self.queue[idx - 1].valdef get_root(self) -> TreeNode:return self.queue[0]
LeetCode题解(0919):设计完全二叉树插入器(Python)相关推荐
- LeetCode 0919. 完全二叉树插入器:完全二叉树的数组表示
[LetMeFly]919.完全二叉树插入器:完全二叉树的数组表示 力扣题目链接:https://leetcode.cn/problems/complete-binary-tree-inserter/ ...
- LeetCode 919. 完全二叉树插入器(层序遍历队列)
1. 题目 完全二叉树是每一层(除最后一层外)都是完全填充(即,结点数达到最大)的,并且所有的结点都尽可能地集中在左侧. 设计一个用完全二叉树初始化的数据结构 CBTInserter,它支持以下几种操 ...
- 919 完全二叉树插入器
题目描述: 完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧. 设计一个用完全二叉树初始化的数据结构 CBTInserter,它支持以下几种操 ...
- LeetCode题解(1872):石子游戏VIII(Python)
题目:原题链接(困难) 标签:动态规划 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 356ms (33.33%) Ans ...
- LeetCode题解(1168):水资源分配优化(Python)
题目:原题链接(困难) 标签:图.Prim算法.Kruskal算法 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N l o g N ) O(NlogN) O(Nlog ...
- LeetCode题解(LCP02):分式化简(Python)
题目:原题链接(简单) 标签:数学 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N ) O(N) O(N) O ( 1 ) O(1) O(1) 36ms (82.12 ...
- LeetCode题解(1386):安排电影院座位(Python)
题目:原题链接(中等) 标签:贪心算法.数组 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(R)O(R)O(R) O(R)O(R)O(R) 144ms (41.56%) A ...
- LeetCode题解(LCP15):游乐园的迷宫(Python)
题目:原题链接(困难) 标签:贪心算法.几何.数学 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N2)O(N^2)O(N2) O(N)O(N)O(N) 1996ms (1 ...
- LeetCode题解(1507):转换日期格式(Python)
题目:原题链接(简单) 标签:字符串 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( 1 ) O(1) O(1) O ( 1 ) O(1) O(1) 40ms (68.7 ...
最新文章
- 网络波动服务器维护中,官方回应《王者荣耀》游戏无法登录:网络波动导致,已修复...
- 难解?SAP云平台集成前路何方?
- [Java] 02 String的常用方法
- 计算机键盘的设计原理图,人体工程学键盘的设计原理
- JAVA生成UUID
- php判断当前浏览器是否微信浏览器
- 使用python移动复制文件
- Android studio app登录界面设计
- C++一本通在线测评网站 题目1224
- 个性签名html,简单个性签名大全2021最新版-简简单单的个性签名--个性简单签名设计-腾牛个性网...
- 助力操作系统国产化:Testin云测试服贸会首发鸿蒙系统测试平台
- stm32h743单片机嵌入式学习笔记5-液晶屏汉字库原理
- Occam‘s razor - 奥卡姆剃刀
- Linux内核中常见内存分配函数
- 完全平方公式用c语言表达式,完全平方公式教案
- arduino小车,准备(一):TB6612FNG电机驱动器
- 聊一聊SpringBoot中酷炫的Banner
- html地图多点标记,高德地图多点标记自定义地图
- 用java编国际象棋3之将军与悔棋
- [附源码]java毕业设计电影影评网