博客
关于我
【 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/

你可能感兴趣的文章
网络相关面试题
查看>>
阿里一二三面、HR面面经-后台
查看>>
【9月打卡~Leetcode每日一题】347. 前 K 个高频元素(难度:中等)
查看>>
MongoDB__数据库_创建_删除
查看>>
MongoDB_集合_创建_删除
查看>>
MongoDB_文档_查询
查看>>
循环整形集合,用逗号拼成字符串的小锦囊~(去掉最后一个逗号)
查看>>
java:-source 1.6 中不支持 diamond 运算符
查看>>
单链表的查找、建立操作(C语言)
查看>>
Delphi 数据类型列表
查看>>
Delphi 选择文件之OpenDialog【并添加至Image】
查看>>
Vue v-for 循环
查看>>
并发控制
查看>>
A - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历(BFS)
查看>>
L - 病毒扩散(暴力)
查看>>
2021-04-15
查看>>
free(): double free detected in tcache 2 如何解决
查看>>
c语言-单链表
查看>>
《软件方法》第1章 建模和UML
查看>>
Rhapsody的文件能转到EA里面吗
查看>>