专做健身餐的网站wordpress 说说碎语
web/
2025/9/27 8:46:14/
文章来源:
专做健身餐的网站,wordpress 说说碎语,专门做车评的网站,佛山网站建设推广订做每日OJ —— 144. 二叉树的前序遍历 1.题目#xff1a;144. 二叉树的前序遍历2.方法讲解2.1.算法讲解2.2.代码实现2.3.提交通过展示 1.题目#xff1a;144. 二叉树的前序遍历 2.方法讲解
2.1.算法讲解 1.首先如果在每次每个节点遍历的时候都去为数组开辟空间#xff0c;这样… 每日OJ —— 144. 二叉树的前序遍历 1.题目144. 二叉树的前序遍历2.方法讲解2.1.算法讲解2.2.代码实现2.3.提交通过展示 1.题目144. 二叉树的前序遍历 2.方法讲解
2.1.算法讲解 1.首先如果在每次每个节点遍历的时候都去为数组开辟空间这样的效率太低了所以我们优化通过直接统计需要遍历的二叉树的节点的个数来作为数组开辟空间的大小这样就及其有效的节省每次遍历都去开辟依次空间的繁琐操作。 2.其次再实现前序遍历的函数接口需要注意的是前序遍历的顺序是根—左子树—右子树前序遍历的数组存储数据时候的下标i需要用指针来接收否则数组的i值下标在左右递归会累加导致越界。 3.最后就是实现前序遍历后返回数组的函数接口。 2.2.代码实现
/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/
/*** Note: The returned array must be malloced, assume caller calls free().*///统计二叉树节点个数
int TreeSize(struct TreeNode* root)
{return rootNULL?0:TreeSize(root-left)TreeSize(root-right)1;
}//前序遍历
void PrevOrder(struct TreeNode* root, int* a, int* pi)
{if(rootNULL){return;}a[(*pi)]root-val;//需要指针来接受否则数组的i值下标在左右递归会累加导致越界PrevOrder(root-left,a,pi);PrevOrder(root-right,a,pi);
}//返回存储二叉树节点的数组
int* preorderTraversal(struct TreeNode* root, int* returnSize) {int nTreeSize(root);//接受二叉树节点作为开辟空间的数组的大小int* a(int*)malloc(sizeof(int)*n);int i0;*returnSizen;//存储数组大小的指针PrevOrder(root,a,i);//对数据进行前序遍历return a;//返回前序遍历后的数组
}2.3.提交通过展示
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81203.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!