题目说明:
题目解读:
1、给定一个二叉树
2、按行从根节点依次输出元素
示例代码:
#include <iostream>
#include <queue>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class Node
{
public:
int data;
Node *left;
Node *right;
Node( int d )
{
data = d;
left = NULL;
right = NULL;
}
};
class Solution
{
public:
Node* insert( Node* root, data )
{
if( root == NULL )
{
return new Node( data );
}
else
{
Node *cur;
if( data <= root->data )
{
cur = insert( root->left, data );
root->left = cur;
}
else
{
cur = insert( root->right, data );
root->right = cur;
}
return root;
}
}
void levelOrder( Node* root )
{
queue<Node*> q;
Node *p = root;
while( p != NULL )
{
cout << p->data << " ";
if( p->left != NULL )
{
q.push( p->left );
}
if( p->right != NULL )
{
q.push( p->right );
}
if( !q.empty() )
{
p = q.front();
q.pop();
}
else
{
p = NULL;
}
}
}
};
//by zhaocl
int main( int argc, char** argv )
{
Solution mytree;
Node* root = NULL;
int T, data;
cin >> T;
while( T-- > 0 )
{
cin >> data;
mytree.insert( root, data );
}
mytree.levelOrder( root );
return 0;
}
知识点:
二叉树的了解