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

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

题目:

Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.

For example,

Given n = 3, your program should return all 5 unique BST's shown below.

1         3     3      2      1    \       /     /      / \      \     3     2     1      1   3      2    /     /       \                 \   2     1         2                 3

 

confused what "{1,#,2,3}" means? 

题目:

这题要求将每个子树输出,思想就是对于n,以1-n为根节点,然后左右子树分别是比其小和比其大的节点构成的,对左右子树的的形态也要使用遍历,代码中使用的是foreach遍历:for(i:j)这种形式

1 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     vector
generateTrees(int n) {13 if (n == 0) return generate(1, 0);14 return generate(1, n);15 }16 private:17 vector
generate(int start, int end) {18 vector
subTree;19 if (start > end) {20 subTree.push_back(nullptr);21 return subTree;22 }23 for (int k = start; k <= end; k++) {24 vector
leftSubs = generate(start, k - 1);25 vector
rightSubs = generate(k + 1, end);26 for (auto i : leftSubs) {27 for (auto j : rightSubs) {28 TreeNode *node = new TreeNode(k);29 node->left = i;30 node->right = j;31 subTree.push_back(node);32 }33 }34 }35 return subTree;36 }37 };

 

转载于:https://www.cnblogs.com/raichen/p/4956115.html

你可能感兴趣的文章
5、泛型
查看>>
第二次冲刺作业
查看>>
【转】HTML, CSS和Javascript调试入门
查看>>
折线图-小案例
查看>>
STL:优先队列Priority Aueue
查看>>
蓝桥历年试题 套娃
查看>>
EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
查看>>
判断是否为移动设备
查看>>
SQL注入原理
查看>>
作业一
查看>>
Matlab控制系统的建模及模型间的转换
查看>>
面向对象编程思想
查看>>
showModalDialog打开一个子窗口,在子窗口添加一条记录后,关闭子窗口刷新父窗口...
查看>>
微信支付体验
查看>>
Excel导数据到数据库
查看>>
zz 悲催的程序员,以及程序员的悲催
查看>>
Flv.js
查看>>
Java工程师成神之路
查看>>
线程池ThreadPoolExecutor整理
查看>>
如何将离线的PIP安装包快速安装好
查看>>