自己写的普通层序遍历
from collections import deque
class Solution:
def connect(self, root):
if not root or (root.left==None and root.right==None):
return root
queue = deque([root,])
while queue:
# number of elements in the current level
level_length = len(queue)
if level_length == 1:
queue[0].next = None
else:
for i in range(level_length-1):
queue[i].next = queue[i+1]
queue[-1].next = None
for i in range(level_length):
node = queue.popleft()
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
return root