思路
采用層序遍歷的方式來連接二叉樹中同一層的節點。首先將根節點加入隊列,然后按層處理節點:每一層依次從隊列中取出節點,并將其 next 指針指向該層中的下一個節點(即隊列中的下一個節點);若是該層最后一個節點,則不進行連接。遍歷過程中,如果當前節點存在左右子節點,則將其加入隊列以供下一層處理。最終返回連接完畢的根節點。
"""
# Definition for a Node.
class Node:def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None):self.val = valself.left = leftself.right = rightself.next = next
"""class Solution:def connect(self, root: 'Node') -> 'Node':#層序遍歷queue=deque()if root:queue.append(root)result=[]while queue:L=len(queue)while L:L-=1node=queue.popleft()if L>0:node.next=queue[0]if node.left:queue.append(node.left)if node.right:queue.append(node.right) return root