当前位置: 首页 > article >正文

python-leetcode-填充每个节点的下一个右侧节点指针 II

117. 填充每个节点的下一个右侧节点指针 II - 力扣(LeetCode)

"""
# Definition for a Node.
class Node:
    def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None):
        self.val = val
        self.left = left
        self.right = right
        self.next = next
"""
from collections import deque

class Solution:
    def connect(self, root: 'Node') -> 'Node':
        if not root:
            return None
        
        queue = deque([root])
        
        while queue:
            size = len(queue)
            prev = None  # 记录上一节点
            
            for i in range(size):
                node = queue.popleft()
                if prev:
                    prev.next = node  # 连接前一个节点的 next
                
                prev = node  # 更新 prev
                
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            
            # 该层最后一个节点的 next 置为 None
            prev.next = None
        
        return root


http://www.kler.cn/a/526533.html

相关文章:

  • 大数据相关职位 职业进阶路径
  • Day29(补)-【AI思考】-精准突围策略——从“时间贫困“到“效率自由“的逆袭方案
  • 你好!这是我自己的CSDN博客!
  • 力扣【1049. 最后一块石头的重量 II】Java题解(背包问题)
  • 【学术会议征稿-第二届生成式人工智能与信息安全学术会议(GAIIS 2025)】人工智能与信息安全的魅力
  • 2025春招 SpringCloud 面试题汇总
  • 基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.20 极值追踪:高效获取数据特征的秘诀
  • TypeScript 学习 - 单元测试
  • C++ 指针
  • Linux中基础开发工具(yum,vim,gcc/g++,git,gdb/cgdb)
  • SOME/IP--协议英文原文讲解3
  • DeepSeek R1-Zero vs. R1:强化学习推理的技术突破与应用前景
  • 认知神经科学0-----关于心智的生物学(2011年第三版)
  • 智达方通如何帮助企业更好地应对数字化转型
  • Golang —协程池(panjf2000/ants/v2)
  • 智慧园区如何融合五大技术实现全方位智能管理与服务创新
  • 一文了解视觉Transformer解析 !!
  • 2022 年 12 月大学英语四级考试真题(第 3 套)——纯享题目版
  • PT站点自动签到
  • 2025数学建模美赛|赛题翻译|F题
  • 「 运动控制 」结构控制网络(Structured Control Network, SCN) ——多策略融合的高效控制架构
  • 高精度加法乘法
  • 详解python的修饰符
  • 数科OFD证照生成原理剖析与平替方案实现
  • 大一计算机的自学总结:位运算实现加减乘除