LeetCode(95) 不同的二叉搜尋樹 II

2022-05-07 08:15:09 字數 905 閱讀 1771

medium!

題目描述:

給定乙個整數 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

解題思路:

這種建樹問題一般來說都是用遞迴來解,這道題也不例外,劃分左右子樹,遞迴構造。至於遞迴函式中為啥都用的是指標,是參考了若不用指標,全部例項化的話會存在大量的物件拷貝,要呼叫拷貝建構函式,具體我尚且不太懂,感覺挺言之有理,不明覺厲。

c++解法一:

1

class

solution ;

5return *generatetreesdfs(1

, n);6}

7 vector*generatetreesdfs(int start, int

end) 21}

22}23}

24return

subtree;25}

26 };

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...