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

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

python 复制代码
"""
# 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
相关推荐
Eric 辰东3 分钟前
【C 语言程序的编译和链接】详解编译链接过程
c语言·笔记·算法·学习方法
迈巴赫车主6 分钟前
蓝桥杯21247弹跳鞋java
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
jghhh0115 分钟前
基于 Weiler-Atherton 算法的多边形裁剪程序实现
算法
不爱吃糖の糖糖16 分钟前
RAG 04:向量数据库与索引算法
数据库·算法
MegaDataFlowers17 分钟前
226.翻转二叉树
算法
Raink老师23 分钟前
【AI面试临阵磨枪-84】如何看待 RAG vs 微调(Fine-tuning)?选型依据
人工智能·面试·职场和发展
alphaTao33 分钟前
LeetCode 每日一题 2026/5/25-2026/5/31
算法·leetcode
菜菜的顾清寒36 分钟前
力扣HOT100(41)动态规划-杨辉三角
算法·leetcode·动态规划
Cthy_hy41 分钟前
Python算法竞赛:集合去重+字典映射 核心用法一站式整理
数据结构·python·算法
JAVA社区42 分钟前
Java高级全套教程(九)—— SpringCloud超详细实战详解
java·开发语言·后端·spring cloud·面试·职场和发展