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

解题思路

按层遍历树即可

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution:
def connect(self, root: 'Node') -> 'Node':
if not root:
return root

layer_nodes = [root]
while layer_nodes:
next_layer_nodes = []
layer_nodes_len = len(layer_nodes)
for i, node in enumerate(layer_nodes):
if i == layer_nodes_len - 1:
node.next = None
else:
node.next = layer_nodes[i+1]
if node.left:
next_layer_nodes.append(node.left)
if node.right:
next_layer_nodes.append(node.right)
layer_nodes = next_layer_nodes

return root