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