Leetcode 95 不同的二叉搜尋樹II

2021-10-03 03:20:32 字數 948 閱讀 5829

題目

給定乙個整數 n,生成所有由 1 ... n 為節點所組成的二叉搜尋樹。

示例:

輸入: 3

輸出:[

[1,null,3,2],

[3,2,null,1],

[3,1,null,null,2],

[2,1,3],

[1,null,2,null,3]

]解釋:

以上的輸出對應以下 5 種不同結構的二叉搜尋樹:

1         3     3      2      1

\ / / / \ \

3 2 1 1 3 2

/ / \ \

2 1 2 3

思路

深度優先搜尋:如果要生成從1到n這n個樹所構成的所有bst,按照其根節點的數值可以分為n種型別:即根節點的值為從1...n。假設我們要生成根節點為k (1 <= k <= n)的所有bst,那麼首先需要生成範圍為1到k-1的所有bst作為左子樹,以及範圍為k+1到n的所有bst作為右子樹,然後兩兩組合就可以形成根節點為k的所有bst(注意思考這裡面為什麼可以保證沒有重複的?)。

#include "treenode.h"

class solution

void generatetrees(vector&result, int start, int end)

for (int i = start; i <= end; ++i)}}

}};int main(int argc, char* ar**)

LeetCode 95 不同的二叉搜尋樹

給定乙個整數 n,生成所有由 1 n 為節點所組成的二叉搜尋樹。示例 輸入 3 輸出 1,null,3,2 3,2,null,1 3,1,null,null,2 2,1,3 1,null,2,null,3 解釋 以上的輸出對應以下 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 1 3 ...

leetcode 95 不同的二叉搜尋樹

題目 給定乙個整數 n,生成所有由 1 n 為節點所組成的 二叉搜尋樹 示例 輸入 3 輸出 1,null,3,2 3,2,null,1 3,1,null,null,2 2,1,3 1,null,2,null,3 解釋 以上的輸出對應以下 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 ...

Leetcode95 不同的二叉搜尋樹 II

給定乙個整數 n,生成所有由 1 n 為節點所組成的二叉搜尋樹。示例 輸入 3輸出 1,null,3,2 3,2,null,1 3,1,null,null,2 2,1,3 1,null,2,null,3 解釋 以上的輸出對應以下 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 1 3 2...