二叉树的OJ题——6.前序遍历

2023-12-26 19:03:50

144. 二叉树的前序遍历 - 力扣(LeetCode)


/*
解题思路:
此题要保存节点,所以需要先获取节点个数,然后进行前序遍历,保存每一个节点值。
*/
//节点个数 = 左右子树节点个数 + 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;
}

?

文章来源:https://blog.csdn.net/2301_76653277/article/details/135228152
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。