0
点赞
收藏
分享

微信扫一扫

leetcode刷题250天(13)——116. 填充每个节点的下一个右侧节点指针

米小格儿 2022-03-11 阅读 17
"""
# Definition for a Node.
class Node(object):
    def __init__(self, val=0, left=None, right=None, next=None):
        self.val = val
        self.left = left
        self.right = right
        self.next = next
"""
class Solution:
    def connect(self, root):
        # 首先将根节点存入
        if root:
            Tovisit = [root]
        else:
            return root
        # 每一个除叶子之外的节点都存在左右孩子
        # 每层节点出队时,将节点的左右孩子压入,便可以保证层级顺序
        while Tovisit:
            len_ = len(Tovisit)
            
            for i in range(len_):
                cur = Tovisit.pop(0)
                # 说明当前值并不是这一层的最后一个
                # 当前值的下一个仍然存在于队列中
                if cur and i < len_ - 1:
                    cur.next = Tovisit[0]
                if cur.left:
                    Tovisit.append(cur.left)
                    Tovisit.append(cur.right)

        return root
举报

相关推荐

0 条评论