难度:中等
题目描述:
思路总结:一种通用的解法,层次遍历设置pre指针。注意不要忘了让pre往后移动。
题解一:
"""
# Definition for a Node.
class Node:
def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None):
self.val = val
self.left = left
self.right = right
self.next = next
"""
from collections import deque
class Solution:
def connect(self, root: 'Node') -> 'Node':
#层次遍历
if not root:return None
pre = None
queue = deque([root])
while queue:
n = len(queue)
while n > 0:
cur = queue.popleft()
if pre:
pre.next = cur
pre = pre.next
else:
pre = cur
if cur.left:queue.append(cur.left)
if cur.right:queue.append(cur.right)
n -= 1
pre = None
return root