117. 填充每个节点的下一个右侧节点指针 II

25 篇文章 0 订阅


117. 填充每个节点的下一个右侧节点指针 II

题目描述

在这里插入图片描述

解题思路

1、本题每层的连续两个节点都需要链接成链表,层次遍历做合适;
2、如何区分每一层,在进入新一层时,首先获取当前层节点个数,依据个数决定操作次数即可。

代码实现

"""
# 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
"""

class Solution:
    def connect(self, root: 'Node') -> 'Node':
        # 二叉树的层次遍历 BFS
        if not root:
            return 
        queue = [root]
        while queue:
            level_num = len(queue)
            pre_node = None
            for _ in range(level_num):
                node = queue.pop(0)
                if pre_node:
                    pre_node.next = node
                pre_node = node
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
        return root

参考文献

1、官方题解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值