当前位置: 首页 > news >正文

工信部网站备案查询聊城做网站的公司行情

工信部网站备案查询,聊城做网站的公司行情,黄页网推广服务,凤翔网站开发问题描述: 给你二叉树的根节点root,返回节点值的前序遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入:root [] 输出:[]示例 3: 输入:ro…

问题描述:

给你二叉树的根节点root,返回节点值的前序遍历。

示例 1:

输入:root = [1,null,2,3]
输出:[1,2,3]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

示例 4:

输入:root = [1,2]
输出:[1,2]

示例 5:

输入:root = [1,null,2]
输出:[1,2]

提示:

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

解题思路:

利用前序将遍历的数据放置到数组中,最后返回数组的地址即可

注意:

  • 由于不知道二叉树中有多少个数据,不知道给数组扩容多少空间,这里就需要调用二叉树的节点个数的函数,最后要把数组的大小传出去输出。
  •  对表示数组下标的i,每一层递归函数都有一个i,递归返回时下一层改变的i不会影响上一层中的i,故函数传参时需要传址

代码如下: 

/** 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 root == NULL ? 0 : TreeSize(root->left) + TreeSize(root->right) + 1;
}
//将前序遍历之后的数据存入数组内
void _prevOrder(struct TreeNode* root, int* a, int* i)
{if (root == NULL)return;a[*i] = root->val;(*i)++;_prevOrder(root->left, a, &i);_prevOrder(root->right, a, &i);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize)
{int size = TreeSize(root);int* a = (int*)malloc(size * sizeof(int));int i = 0;_prevOrder(root, a, &i);//将数组的大小传出去*returnSize = size;return a;
}

小tip:已知二叉树的前序和中序得遍历过程,能否得到二叉树原本的结构?

假设前序为EFHIGJK,中序为HFIEJKG,试求出二叉树原本的结构。

通过之前的学习,我们可知前序遍历的顺序是根,左子树,右子树,中序遍历的顺序是左子树,根,右子树,由此可知,前序确定了该二叉树的根节点E,而中序可确定左子树和右子树,由此可知HFI为根节点的左子树,而JKG为根节点的右子树,又因为前序遍历完根节点之后就是左子树,故F为左子树,H为F的左子树,I为F的右子树,G为根节点的右子树,以此类推通过中序可发现,G后没遍历的数据,所以G无右子树,因为J比K先遍历,所以K不可能为J的左子树,因此只能为右子树。此二叉树的结构如下:

由此我们可以总结出一个结论:

已知前序+中序,后序+中序可推出二叉树结构,而后序+前序不可推。

http://www.yayakq.cn/news/965345/

相关文章:

  • 建筑网站源码网站建设毕业设计文献综述
  • 网站查询访问域名站长工具里查看的网站描述和关键词都不显示
  • 做自行车车队网站的名字c2c平台名称
  • 东莞本地招聘网站有哪些南昌官网seo厂家
  • 商城网站 html模板美食类网站开发需求分析
  • 怎么建国外网站厦门seo网站管理
  • 服务好的网站制作建设百度购物平台
  • 通江移动网站建设预付网站建设服务费如何入账
  • 企业该如何进行网站推广游览器大全
  • 营销型企业网站报价遵义建立公司网站的步骤
  • 做网站的客户小杨哥直播带货平台
  • 做业务在那几个网站上找客户端微信公众号的管理
  • 如何做纯文本网站做一万个网站
  • 域名注册最后是网站软件开发步骤及周期
  • 北京网站建设有哪些公司QQ群采集到wordpress
  • 仿一个网站要多少钱提升网站打开速度
  • 大蒜价格国际贸易网如何做好网站seo
  • 网络营销首先要做什么班级优化大师简介
  • 手机移动开发网站沧州企业网站制作
  • 网站开发一般用哪种语言品牌策略的7种类型
  • 国外做的好的医疗网站怎样用源代码做网站
  • 黄埔做网站公司电销管理系统哪个好用
  • 网站建设各模块功能简述一分钟做网站
  • 门户网站建设背景做网站公司哪家公司好
  • 成都专业网站建设公司排名网站首页 模板
  • 快捷建站专家视频网站建设服务
  • 网站流量站怎么做中国设计师联盟
  • 网站建设维护资质ps联盟网站
  • 一级A做爰片秋欲浓网站小程序定制开发要多少钱
  • 入侵网站怎么做弹出网站建设公司资讯