LeetCode 117. 填充每个节点的下一个右侧节点指针 II
虽然这道题被标为中等难度, 但是也是一个 bfs 就可以解决的. 只是需要存一下深度信息然后作比较就好了. 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Solution: def connect(self, root: 'Node') -> 'Node': if root is None: return def bfs(): level = 0 node_index = 0 level_index = 1 queue = [(root, level)] while queue: node, current_level = queue.pop(0) if queue and queue[0][level_index] == current_level: node.next = queue[0][node_index] if node.left: queue.append((node.left, current_level+1)) if node.right: queue.append((node.right, current_level+1)) bfs() return root
|