博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode先刷_Unique Binary Search Trees II
阅读量:6693 次
发布时间:2019-06-25

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

可能没想到,人的简单方法,关于质询的问题提出做。

如何把产生出来的所有的树木?所使用的方法当然是递归,但是有一个致命的问题,假设根节点,然后做一个递归,所以这是非常多的公共树木的根,结果肯定是一团糟。

怎么办?事实上,在思想上先实践的数量目前正在寻求高度统一,先把全部的左右子树都求出来。然后把它们之间的全部组合都连接到一个新建立出来的根节点,既然是分开左右子树。非常easy想到类似二分的思想。每次指定的不是一个位置。而是一个范围。我一開始还想着先把n个数放到数组里面再递归,脱了裤子放屁啊。

通过对算法思想的描写叙述,“先确定左右子树,再加入根节点”。非常easy想到使用类似后序遍历的编码格式。

class Solution {public:    vector
buildTrees(int beg, int end){ vector
res, left, right; if(beg>end){ res.push_back(NULL); return res; } for(int i=beg;i<=end;i++){ left = buildTrees(beg, i-1); right = buildTrees(i+1, end); for(int j=0;j
left = left[j]; root->right = right[k]; res.push_back(root); } } } return res; } vector
generateTrees(int n) { return buildTrees(0, n-1); }};

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
centos6.7 编译安装mysql-5.6.27
查看>>
spring cloud 整合zpkin问题
查看>>
Maven下载慢的解决方案
查看>>
我的友情链接
查看>>
Android 核心分析 之七------Service深入分析
查看>>
Regsvr32使用方法
查看>>
柱形图Demo
查看>>
编辑器
查看>>
关闭windows的默认共享
查看>>
react开发环境搭建
查看>>
数据库读写分离
查看>>
社交是微信营销
查看>>
2008 R2 证书服务器应用详解
查看>>
hive 动态分区太多问题
查看>>
Windows Server 2008 RemoteApp(二)---部署激活远程桌面授权服务器
查看>>
读取日志文件开发总结
查看>>
IOS --React Native
查看>>
Linux CPU
查看>>
Linux/Centos ntp时间同步,联网情况和无网情况配置
查看>>
初级网络运维工程师比赛题目
查看>>