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

网站建设选谋者智能小程序开发

网站建设选谋者,智能小程序开发,免备案wordpress主机空间,现在有什么新型建筑模板文章目录前序遍历代码\Python代码\C中序遍历代码\Python代码\C后序遍历代码\Python代码\C层序遍历代码\Python代码\C反向层序遍历代码\Python代码\C总结前序遍历 题目链接   前序遍历意思就是按照“根节点-左子树-右子树”的顺序来遍历二叉树#xff0c;通过递归方法来实现… 文章目录前序遍历代码\Python代码\C中序遍历代码\Python代码\C后序遍历代码\Python代码\C层序遍历代码\Python代码\C反向层序遍历代码\Python代码\C总结前序遍历 题目链接   前序遍历意思就是按照“根节点-左子树-右子树”的顺序来遍历二叉树通过递归方法来实现的话很简单我们只需要描述一下访问的规则 1.如果当前节点为空就返回 2.否则就访问当前节点 3.访问左子树左节点 4.访问右子树右节点 对python来说一般我们用一个列表来保存访问的结果列表对象是可修改对象所以我们可以直接把列表对象当做函数的参数跟着传递对C来说我们可以用一个vector向量来保存结果在函数传递时使用传引用的方式一样可以达到效果。 代码\Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def preorderTraversal(self, root: Optional[TreeNode]) - List[int]:res []self.preorder(root, res)return resdef preorder(self, root, res):if not root:returnres.append(root.val)self.preorder(root.left, res)self.preorder(root.right, res)代码\C /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:vectorint preorderTraversal(TreeNode* root) {vectorint res;travel(root, res);return res;}void travel(TreeNode *root, vectorint res){if(!root){return;}res.push_back(root-val);travel(root-left, res);travel(root-right, res);} };中序遍历 题目链接   类似的中序遍历就是遍历的时候把根节点放到中间即“左子树-根节点-右子树”的顺序。只需要稍微修改一下代码就行。 代码\Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def inorderTraversal(self, root: Optional[TreeNode]) - List[int]:res []self.inorder(res, root)return resdef inorder(self, res, root):if root is None:returnself.inorder(res, root.left)res.append(root.val)self.inorder(res, root.right)代码\C /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:vectorint inorderTraversal(TreeNode* root) {vectorint res;inorder(root, res);return res;}void inorder(TreeNode *root, vectorint res){if(!root){return;}inorder(root-left, res);res.push_back(root-val);inorder(root-right, res);} };后序遍历 添加链接描述   类似的后序遍历就是遍历的时候把根节点放到最后即“左子树-右子树-根节点”的顺序。同样只需要稍微修改一下代码就行。 代码\Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def postorderTraversal(self, root: Optional[TreeNode]) - List[int]:res []self.postorder(res, root)return resdef postorder(self, res, root):if root is None:returnself.postorder(res, root.left)self.postorder(res, root.right)res.append(root.val)代码\C /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:vectorint postorderTraversal(TreeNode* root) {vectorint res;postorder(root, res);return res;}void postorder(TreeNode *root, vectorint res){if(!root){return;}postorder(root-left, res);postorder(root-right, res);res.push_back(root-val);} };层序遍历 题目链接   层序遍历一般指对二叉树进行从上到下从左到右的一层一层的遍历同样深度的节点在同一层。递归的层序遍历需要借助节点所在的深度信息。 代码\Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def levelOrder(self, root: Optional[TreeNode]) - List[List[int]]:res []self.level(root, 0, res)return resdef level(self, root, depth, res):if not root:return []if len(res) depth:res.append([])res[depth].append(root.val)if root.left:self.level(root.left, depth 1, res)if root.right:self.level(root.right, depth 1, res)代码\C /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:vectorvectorint levelOrder(TreeNode* root) {vectorvectorint res;travel(root, 0, res);return res;}void travel(TreeNode *root, int depth, vectorvectorint res){if(!root){return;}if(res.size() depth){res.push_back({});}res[depth].push_back(root-val);if(root-left){travel(root-left, depth 1, res);}if(root-right){travel(root-right, depth 1, res);}} };反向层序遍历 反向层序遍历顾名思义就是从下往上从左往右的反着来我们只需要在正向遍历的基础上在最后返回答案前把答案反转一遍。 代码\Python return res[::-1] #or return res.reverse()代码\C reverse(res.begin(), res.end()); return res;总结 最常见最基础的4种二叉树的遍历方式也是二叉树很多题目的基础算法如果对你有帮助的话动动手指点个赞吧
http://www.eeditor.cn/news/119549/

相关文章:

  • 华为网站开发app下载平台哪个好
  • 当当网网站建设案例网络营销外包价格
  • 古典风格网站模板htmlwordpress主题的连接函数
  • 中国十大企业襄阳网站seo方法
  • 企业网站的重要性钉钉付费版多少钱
  • 深圳网站建设公司建设wordpress插件 标签
  • 华梦服饰网站建设中北京市建设厅网站首页
  • 天津正规网站建设调试公司网站设计目的与规划
  • 在家里怎样做网站如何写网站建设实验结果分析
  • 建网站原型图中小企业门户网站建设策略
  • 优惠券直播网站怎么做的郑州汉狮做网站多少钱
  • 静态网站建设的流程人才网站app建设建议
  • 电子商务和网站建设区别软件发展的四个阶段
  • 黄山工程建设信息网站电子商务网站dw建设实验报告
  • 房产网站建设产品中国十大建筑设计院
  • 资质类网站如何做优化专业的教育行业网站制作
  • 做游戏网站的目地有没有在家做的手工活网站
  • 做康复医院网站怎样找到工厂直招网站
  • 网站建设:成都今网科技wordpress 大气模板
  • 网站地图用法大安网站建设
  • 宁夏建设工程交易中心网站记事本做网站怎么插图
  • 鸣蝉网站建设公司建筑公司网站管理员
  • 域名如何做网站百度云 免费 网站主机
  • 烟台优化网站公司wordpress 主题 教程
  • 网站建站步骤做外贸需掌握的网站
  • 展开网站建设网站模板 psd
  • 台州建设网站公司生鲜电商网站建设
  • 中国十大门户网站排行金蝶软件有限公司
  • 云浮新兴哪有做网站的在山东和网页有关的公司
  • 一个网站做几个关键词搭建大数据平台费用