【Uma pergunta do dia】 116. Preenchendo os próximos indicadores corretos em cada nó

Insira a descrição da imagem aqui

O significado do título: Adicionar um novo ponteiro para cada nó da árvore binária completa, que pode indicar o próximo nó do nó atual na camada. O título não é difícil e só precisa ser percorrido. Configure uma fila para armazenar os nós da camada atual e, em seguida, retire da fila um por um.O próximo ponteiro do nó mais à direita está vazio. Já escrevi perguntas semelhantes sobre pat antes, mas elas são escritas em C ++ e não estou familiarizado com python. O código a seguir é do tutorial oficial

from collections import deque
class Solution:
    def connect(self, root: 'Node') -> 'Node':  # root是指向Node型的指针
        if not root:
            return root
        # 根节点进队
        q = deque([root])
        while q:
            size = len(q)   #每次的结点数目
            for i in range(size):
                node = q.popleft()  #出队
                if(i < size - 1):        #每一层最右边那个结点不需要指定next
                    node.next = q[0]
                if node.left:             #下一层结点入队
                    q.append(node.left)
                if node.right:
                    q.append(node.right)
        return root

Acho que você gosta

Origin blog.csdn.net/SJTUKK/article/details/109091893
Recomendado
Clasificación