class Solution {
public Node connect(Node root) {
if(root==null){
return root;
}
Queue<Node> qu=new LinkedList<>();
qu.offer(root);
int le;
Node nod1=root,nod2;
while(!qu.isEmpty()){
le=qu.size();
if(le>1){
nod1=qu.poll();
if(nod1.left!=null){
qu.offer(nod1.left);
}
if(nod1.right!=null){
qu.offer(nod1.right);
}
le--;
}
while(le>0){
nod2=qu.poll();
nod1.next=nod2;
nod1=nod2;
if(nod1.left!=null){
qu.offer(nod1.left);
}
if(nod1.right!=null){
qu.offer(nod1.right);
}
if(le==1){
nod2.next=null;
}
le--;
}
}
return root;
}
}
class Solution(object):
def connect(self, root):
if root is None:
return root
qu=collections.deque()
qu.append(root)
nod1=root
while qu:
le=len(qu)
if le>1:
nod1=qu.popleft()
if nod1.left:
qu.append(nod1.left)
if nod1.right:
qu.append(nod1.right)
le-=1
while le>0:
nod2=qu.popleft()
nod1.next=nod2
nod1=nod2
if nod1.left:
qu.append(nod1.left)
if nod1.right:
qu.append(nod1.right)
if le==1:
nod2.next=None
le-=1
return root