/**
- struct TreeNode {
- int val;
- struct TreeNode *left;
- struct TreeNode *right;
- };
- C语言声明定义全局变量请加上static,防止重复定义 / /*
- 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
- @param root TreeNode类
- @return int整型一维数组
- @return int* returnSize 返回数组行数 */ int temp[1000]; int g_num = 0;
void get_data_from_left_to_right(struct TreeNode *pRoot, int level) { if (pRoot == NULL) return;
if (level == 0)
temp[g_num++] = pRoot->val;
else {
get_data_from_left_to_right(pRoot->left, level - 1);
get_data_from_left_to_right(pRoot->right, level - 1);
}
}
int get_tree_length(struct TreeNode *pRoot) { int leftlength, rightlength;
if (pRoot == NULL) return 0;
leftlength = get_tree_length(pRoot->left);
rightlength = get_tree_length(pRoot->right);
if (leftlength > rightlength)
return leftlength + 1;
else
return rightlength + 1;
} int* PrintFromTopToBottom(struct TreeNode* root, int* returnSize ) { // write code here int length; int i = 0; length = get_tree_length(root);
for (i = 0; i < length; i++)
get_data_from_left_to_right(root, i);
(*returnSize) = g_num;
return temp;
}