class Solution:
def connect(self, root: 'Optional[Node]') -> 'Optional[Node]':
if not root: return None
from collections import deque
queue = deque([root])
while queue:
child_size = len(queue)
for i in range(child_size):
cur = queue.popleft()
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
迭代思路:
把result和results都去掉;
在遍历到每行最后一个节点时,break;
遍历到每行非最后节点时,将cur.next指向queue[0], 注意这一步不能queue.popleft,否则就把下一层待遍历的孩子节点给弹出了。