class Solution:
def connect(self, root: 'Node') -> 'Node':
if not root: return root
queue = [root]
while queue:
child_size = len(queue)
for i in range(child_size):
cur = queue.pop(0)
if cur.left: queue.append(cur.left)
if cur.right: queue.append(cur.right)
if i == child_size - 1:
break
else:
cur.next = queue[0]
return root
迭代解题思路:
同Leetcode116