灵神,2x树的层序遍历,102,103,513

首先同样的如果不存在就直接返回空,然后把当前层数的点放成cur里面,通过遍历左右节点,把这些纸放到value和next里面,每次都要更新这些储存的数组,更新cur和next最后再把value里面的全部都放到答案里面就行了,这里的next是为了更新,这里的val是为了写入数组这里有一个当前节点和下一个节点,如果当前节点存在,也就是说吧,当前节点遍历遍历完之后去让它的左节点和右节点依次放入到下一层之中,之后把下一层放到这一层的,并且每一层得到的值都会加入到answer里面

python 复制代码
def f(self,root)
    if root is None:
        return []
    cur=[root]
    ans=[]
    while cur:
        vals=[]
        nxt=[]
        for node in cur:
            vals.append(node.val)    
            if node.left: nxt.append(node.left)
            if node.right: nxt.append(node.right)
#注意要有一个更换nxt的步骤
        cur=nxt
        ans.append(vals)
    return ans

这种情况cur要一直变,next也要一直变,所以凌晨就说用队列的形式就可以pop出去左边的,append右边的,这样一个数据结构就可以了。这里跟上面一样,是会存在一个便利的过程,也就是range的过程

python 复制代码
def f(self,root):
    if root is None:
        return []
#这个队列的设置很容易出错
    q=deque([root])
    ans=[]
    while q:
        vals=[]
        for _ in range(len(q)):
            node=q.popleft()
            vals.append(node.val)
            if node.left: q.append(node.left)
            if node.right: q.append(node.right)
#这里可以直接加这些全部的vals
        ans.append(vals)
    return ans

如果是锯齿型交替左右左右的,可以用一个布尔变量,每次进入这个便利的时候,就进行一个判断语句,并且把这个布尔变量反转一下,not bool,然后再用一个判断语句在append的时候vals::-1 if else vals语句就行。

python 复制代码
def f(self,root):
    if root is None:
        return []
#这个队列的设置很容易出错
    q=deque([root])
    ans=[]
    even=False
    while q:
        vals=[]
        
        for _ in range(len(q)):
            node=q.popleft()
            vals.append(node.val)
            if node.left: q.append(node.left)
            if node.right: q.append(node.right)
        
#这里可以直接加这些全部的vals
        ans.append(vals[::-1] if even else vals)
        even=not even
    return ans

求一个2x树最左边节点,也就是说最深的一层的最左边结点,像这种情况的话也是一样的,可以用一个队列deque,然后如果队列不是空的话就进入循环,这种情况是先右边的节点都弄进来然后最后pop左边开始,所以最后进来的是最左边的节点最后出去的也是最左边的节点

python 复制代码
def f(self , root ):
    q=deque([root])
    while q:
        node=q.popleft()
        if node.right: q.append(node.right)
        if node.left: q.append (node.left)
    return node 
相关推荐
AI科技星2 分钟前
科幻艺术书本封面:《全域数学》第一部·数术本源 第三卷 代数原本(P95-141)完整五级目录【乖乖数学】
算法·机器学习·数学建模·数据挖掘·量子计算
风筝在晴天搁浅4 分钟前
LeetCode 92.反转链表Ⅱ
算法·leetcode·链表
王老师青少年编程18 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【贪心与二分判定】:数列分段 Section II
c++·算法·贪心·csp·信奥赛·二分判定·数列分段 section ii
V搜xhliang024640 分钟前
OpenClaw科研全场景用法:从文献到实验室的完整自动化方案
运维·开发语言·人工智能·python·算法·microsoft·自动化
汉克老师1 小时前
GESP2025年3月认证C++五级( 第三部分编程题(2、原根判断))
c++·算法·模运算·gesp5级·gesp五级·原根·分解质因数
数据皮皮侠1 小时前
上市公司创新韧性数据(2000-2024)|顶刊同款 EIR 指数
大数据·人工智能·算法·智慧城市·制造
WL_Aurora1 小时前
Python 算法基础篇之链表
python·算法·链表
科研前沿1 小时前
纯视觉无感解算 + 动态数字孪生:室内外无感定位技术全新升级
大数据·人工智能·算法·重构·空间计算
Wadli2 小时前
26.单调栈
算法
晨曦夜月2 小时前
进程的五大状态及特殊进程解析
linux·服务器·算法