博客
关于我
【 LeetCode 105】 从前序与中序遍历序列构造二叉树 (中等)
阅读量:267 次
发布时间:2019-03-01

本文共 989 字,大约阅读时间需要 3 分钟。

代码:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {   public:    TreeNode* create(int zz,int zy,int xz,int xy,vector
& preorder, vector
& inorder) //zz中序左,zy中序右,xz先序左,xy先序右 { if(xz>xy) return NULL; //空树 TreeNode* root=new TreeNode; root->val=preorder[xz]; //先序第一个为根 int k; for(k=zz;k<=zy;k++) //在中序遍历中找到根,确定左右树的长度 if(inorder[k]==preorder[xz]) break; int num=k-zz; //左子树的长度 root->left=create(zz,zz+num-1,xz+1,xz+num,preorder,inorder); //建左树 root->right=create(zz+num+1,zy,xz+num+1,xy,preorder,inorder); //建右树 return root; } TreeNode* buildTree(vector
& preorder, vector
& inorder) { TreeNode* root=create(0,inorder.size()-1,0,preorder.size()-1,preorder,inorder); return root; }};

转载地址:http://jaao.baihongyu.com/

你可能感兴趣的文章
vue系列:vue中使用vee-validate3表单验证
查看>>
php:使用php写一个简单的接口
查看>>
mysql:三范式
查看>>
RPA实施指南:企业如何实现流程优化?
查看>>
向买家索要好评就是这么简单!一键发送催评消息
查看>>
干货丨RPA售前六技能
查看>>
伪类的用法
查看>>
MVC之修改
查看>>
堆栈和队列
查看>>
使用pycharm链接数据库MySQL
查看>>
python流程控制之for循环
查看>>
Linux基础学习笔记
查看>>
struct 模块
查看>>
析构方法 __del__
查看>>
python之random模块
查看>>
python之面向对象编程
查看>>
Docker Compose 搭建 Redis Cluster 集群环境
查看>>
python之字典类型内置方法
查看>>
python之集合类型内置方法
查看>>
编程与编程语言分类
查看>>