给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点
"""
# Definition for a Node.
class Node(object):
def __init__(self, val=0, left=None, right=None, next=None):
self.val = val
self.left = left
self.right = right
self.next = next
"""
from collections import deque
class Solution(object):
def connect(self, root):
"""
:type root: Node
:rtype: Node
"""
if not root:
return None
que = deque([root])
result = []
while que:
node_size = len(que)
for i in range(node_size):
cur = que.popleft()
if i < node_size - 1:
# i是从0开始 <= node_siez - 2也可
cur.next = que[0]
# 不能对队首元素再pop,使用que[0]
if cur.left:
que.append(cur.left)
if cur.right:
que.append(cur.right)
return root