构建二叉树
来源:互联网 发布:蔡珍妮淘宝退货地址 编辑:程序博客网 时间:2024/06/07 16:39
/*1.一直一个排序数组,求转换为一个平衡二叉查找树*//** * 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 *CreateTree(vector<int> &nums) { if(nums.empty() == true) { return NULL; } vector<int> nums_left; vector<int> nums_right; int mid = (0+nums.size())/2; //vector的中间数字为根 int mid_value = nums[mid]; TreeNode *root = new TreeNode(mid_value); for(int i=0;i<mid;i++) { nums_left.push_back(nums[i]); //左边的数字 } for(int i=mid+1;i<nums.size();i++) { nums_right.push_back(nums[i]); //右边的数字 } root->left = CreateTree(nums_left); //创建左边的跟 root->right = CreateTree(nums_right); //创建右边的根 return root; //返回当前的根节点 } TreeNode* sortedArrayToBST(vector<int>& nums) { if(nums.empty() == true) { return NULL; } return CreateTree(nums); } };2.已知二叉树的前序和中序 -> 构建一颗 二叉树/** * * Definition for binary tree * * struct TreeNode { * * int val; * * TreeNode *left; * * TreeNode *right; * * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * * }; * */class Solution { public: struct TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> in) { int pre_size = pre.size(); int in_size = in.size(); if(pre_size == 0 || in_size == 0) { return NULL; } vector<int> pre_left,pre_right,in_left,in_right; int mid,i; int root_value = pre[0]; TreeNode *temp = new TreeNode(root_value); for(i=0;i<pre_size;i++) { if(in[i] == root_value) { mid = i; break; } } for(i=0;i<mid;i++) { pre_left.push_back(pre[i+1]); in_left.push_back(in[i]); } for(i=mid+1;i<pre_size;i++) { pre_right.push_back(pre[i]); in_right.push_back(in[i]); } temp->left = reConstructBinaryTree(pre_left, in_left); temp->right = reConstructBinaryTree(pre_right, in_right); return temp; }};
1 0
- 如何构建二叉树
- 如何构建二叉树
- 构建二叉树实例
- 构建二叉树
- leetcode:构建二叉树
- 二叉树的构建
- C++构建二叉树
- 构建二叉树
- 二叉查找树构建
- 构建二叉树
- 构建二叉树(swift)
- Java 构建二叉树
- 构建二叉树
- 二叉树遍历&构建
- 构建平衡二叉树
- 重新构建二叉树
- 先中序构建二叉树
- 构建二叉树
- php接受restful api设计中的delete put的接收方式
- 多线程一
- 工厂设计模式
- BSTR用法详解
- Android Design Support Library使用详解
- 构建二叉树
- 工作问题-java-单值查询renderJson返回
- 链表的实现(类模板)
- 记录 机器学习牛人
- LeetCode 72. Edit Distance
- 学习笔记之深入浅出MFC 第6章 Console程序介绍
- TEST
- 建站笔记1:centos6.5下安装mysql
- 启动tomcat 卡在Initializing Spring root WebApplicationContext