博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode_894. All Possible Full Binary Trees
阅读量:6941 次
发布时间:2019-06-27

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

给定节点个数,求所有可能二叉树,该二叉树所有节点要么有0个子节点要么有两个子节点。返回所有二叉树的头指针。

 

一开始一直想的是从根节点开始建树,一直想不出来方法。后来想到可以从子节点开始建树,问题就很好解决了。

 

class Solution{public:    vector
allPossibleFBT(int N) { vector
ret; if(N == 1) { TreeNode* rt = new TreeNode(0); ret.push_back(rt); return ret; } for(int i=1; i<=(N-1)/2; i+=2) //左子树的节点数 { vector
left = allPossibleFBT(i);    //创建所有可能左子树 vector
right = allPossibleFBT(N-1-i); //创建所有可能的右子树 for(int j=0;j
left = left[j]; rt->right = right[k]; ret.push_back(rt); if(i != N-1-i)    //如果左右子树节点数不同,交换左右子树也是一种可能 { TreeNode * rt2 = new TreeNode(0); rt2->left = right[k]; rt2->right = left[j]; ret.push_back(rt2); } } } return ret; }};

 

转载于:https://www.cnblogs.com/jasonlixuetao/p/10582693.html

你可能感兴趣的文章
QT在线
查看>>
以P2P网贷为例互联网金融产品如何利用大数据做风控?
查看>>
Polymer初探
查看>>
zprofiler三板斧解决cpu占用率过高问题(转载)
查看>>
深入浅出NIO Socket实现机制
查看>>
bzoj 1930: [Shoi2003]pacman 吃豆豆 [费用流]
查看>>
(数字IC)低功耗设计入门(三)——系统与架构级低功耗设计
查看>>
Dynamics CRM2016 新功能之从CRM APP中导出数据至EXCEL
查看>>
Android——推断Service是否已经启动
查看>>
subprocess模块
查看>>
大数据入门基础系列之初步认识大数据生态系统圈(博主推荐)
查看>>
linux下命令行的查找顺序
查看>>
基于HTML5 Canvas 点击添加 2D 3D 机柜模型
查看>>
详述 SQL 中的 distinct 和 row_number() over() 的区别及用法
查看>>
xshell 登陆堡垒机实现自动跳转
查看>>
Hexo-设置阅读全文
查看>>
实模式与保护模式
查看>>
分布式ID生成器解决方案
查看>>
ResolveUrl in external JavaScript file in asp.net project
查看>>
EL表达式JSON应用
查看>>