当前位置:网站首页>【二叉树-中等】1104. 二叉树寻路
【二叉树-中等】1104. 二叉树寻路
2022-08-10 01:52:00 【菜菜2022】
【题目】
【代码】
class Solution:
def pathInZigZagTree(self, label: int) -> List[int]:
parents=[]
levels=[]
def levelVisit(label):
nonlocal levels
for level_id in range(1,1001):
level=[pow(2,level_id)+i for i in range(pow(2,level_id))]
levels.append(level)
if label in level:
break
levels=levels[::-1]
# print(levels)
for idx,level in enumerate(levels):
parents.append(label)
if label not in levels[idx]:
break
cur_pos=levels[idx].index(label)//2
# print("idx:",idx," cur_pos:",cur_pos)
if idx!=len(levels)-1:
label=levels[idx+1][len(levels[idx+1])-1-cur_pos]
if label==1:
return [1]
levelVisit(label)
parents.append(1)
# print(parents)
return parents[::-1]
【方法2】来自麦麦麦麦子。的题解
class Solution:
def pathInZigZagTree(self, label: int) -> List[int]:
res = []
while label != 1:
res.append(label)
label >>= 1
label = label ^(1 << (label.bit_length() - 1)) - 1
return [1]+res[::-1]
边栏推荐
猜你喜欢
随机推荐
c# 解决CS8602告警 解引用可能出现空引用
unity 报错 Unsafe code may only appear if compiling with /unsafe. Enable “Allow ‘unsafe‘ code“ in Pla
.Net面试经验总结
UXDB现在支持函数索引吗?
[Swoole Series 3.5] Process Pool and Process Manager
中级xss绕过【xss Game】
.Net interview experience summary
阿里云OSS文件上传
Unity碰撞和触发
OptiFDTD应用:纳米盘型谐振腔等离子体波导滤波器
卷积神经网络识别验证码
HCIP——综合交换实验
多线程之享元模式和final原理
web开发概述
Not, even the volume of the king to write code in the company are copying and pasting it reasonable?
基于C51的中断控制
按钮倒计时提醒
Web性能测试模型小结
flask增删改查
微透镜阵列后光传播的研究