// testcode.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <vector>
#include <queue>
typedef struct sBTree
{
sBTree* left;
sBTree* right;
int data;
}BTree;
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
vector<vector<int>> bTreeNodePrintf(BTree* root)
{
vector<int> vec;
vector<vector<int>> ret;
queue<BTree*> que;
BTree* CurrLineEndNode = root;
BTree* NextLineEndNode = NULL;
if (!root)
{
return ret;
}
que.push(root);
while (!que.empty())
{
BTree* node = que.front();
vec.push_back(node->data);
que.pop();
if (node->left != NULL)
{
que.push(node->left);
NextLineEndNode = node->left;
}
if (node->right != NULL)
{
que.push(node->right);
NextLineEndNode = node->right;
}
if (node == CurrLineEndNode)
{
CurrLineEndNode = NextLineEndNode;
ret.push_back(vec);
vec.clear();
}
}
return ret;
}
//
#include "stdafx.h"
#include <vector>
#include <queue>
typedef struct sBTree
{
sBTree* left;
sBTree* right;
int data;
}BTree;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
vector<vector<int>> bTreeNodePrintf(BTree* root)
{
vector<int> vec;
vector<vector<int>> ret;
queue<BTree*> que;
BTree* CurrLineEndNode = root;
BTree* NextLineEndNode = NULL;
if (!root)
{
return ret;
}
que.push(root);
while (!que.empty())
{
BTree* node = que.front();
vec.push_back(node->data);
que.pop();
if (node->left != NULL)
{
que.push(node->left);
NextLineEndNode = node->left;
}
if (node->right != NULL)
{
que.push(node->right);
NextLineEndNode = node->right;
}
if (node == CurrLineEndNode)
{
CurrLineEndNode = NextLineEndNode;
ret.push_back(vec);
vec.clear();
}
}
return ret;
}