#include <iostream>
using namespace std;
void LevelOrderTraverse( node * root)
{
if ( root == NULL )
return ;
queue< node* > qTree ;
qTree.push ( root) ;
while ( qTree.size ( ) > 0 )
{
node * prevNode = NULL ;
int nSize = qTree.size ( ) ;
for ( int nIndex = 0 ; nIndex < nSize ; nIndex++ )
{
node* temp= qTree.front ( ) ;
qTree.pop ( ) ;
if ( ! temp) continue ;
if ( prevNode) { prevNode- > nextRight = temp; }
prevNode = temp ;
if ( temp- > left)
qTree.push ( temp- > left) ;
if ( temp- > right)
qTree.push ( temp- > right) ;
}
}
}
int main( ) {
// your code goes here
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIExldmVsT3JkZXJUcmF2ZXJzZShub2RlICogcm9vdCkKewogaWYocm9vdCA9PSBOVUxMKQogcmV0dXJuOwogcXVldWU8bm9kZSo+IHFUcmVlIDsKIHFUcmVlLnB1c2gocm9vdCk7Cgp3aGlsZShxVHJlZS5zaXplKCkgPiAwKQogewpub2RlICogcHJldk5vZGUgPSBOVUxMIDsKIGludCBuU2l6ZSA9IHFUcmVlLnNpemUoKTsKIGZvcihpbnQgbkluZGV4ID0gMCA7IG5JbmRleCA8IG5TaXplIDsgbkluZGV4KyspCiB7Cm5vZGUqIHRlbXA9IHFUcmVlLmZyb250KCk7CiBxVHJlZS5wb3AoKTsKCmlmKCF0ZW1wKSBjb250aW51ZTsKIGlmKHByZXZOb2RlKSB7IHByZXZOb2RlLT5uZXh0UmlnaHQgPSB0ZW1wOyB9CiBwcmV2Tm9kZSA9IHRlbXAgOwogaWYodGVtcC0+bGVmdCkgCiBxVHJlZS5wdXNoKHRlbXAtPmxlZnQpOwogaWYodGVtcC0+cmlnaHQpCiBxVHJlZS5wdXNoKHRlbXAtPnJpZ2h0KTsKIH0KIH0KfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==