/*
解题思路:
此题要保存节点,所以需要先获取节点个数,然后进行前序遍历,保存每一个节点值。
*/
//节点个数 = 左右子树节点个数 + 1
int BinaryTreeSize(struct TreeNode* root)
{
return root == NULL ? 0 : BinaryTreeSize(root->left) + BinaryTreeSize(root->right) + 1;
}
void PreOrder(struct TreeNode* root,int* array,int* i)
{
if (root == NULL)
{
return;
}
array[(*i)++]=root->val;
PreOrder(root->left,array,i);
PreOrder(root->right,array,i);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize)
{
* returnSize=BinaryTreeSize(root);
int * array=(int *)malloc( sizeof(int) * (*returnSize) );
int i=0;
PreOrder(root,array,i);
return array;
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有