Ideas
通过示例图可以很明显的看出来,next指针指向每一层的下一个节点,所以肯定跟二叉树的层序遍历有关。
然后,,,就没有然后了,层序遍历稍微改一下逻辑就可以了。
Code
Python
class Solution:
def connect(self, root: 'Optional[Node]') -> 'Optional[Node]':
if not root:
return root
queue = deque([root])
while queue:
size = len(queue)
for i in range(size):
node = queue.popleft()
if i < size - 1:
node.next = queue[0]
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
return root