Leetcode 不同的二叉搜尋樹 II

2021-10-03 01:51:03 字數 833 閱讀 7091

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

卡特蘭數

方法: 列舉根元素,從而決定左子樹和右子樹的元素個數,然後分別列舉兩個子樹的所有可能性,再組合起來。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution ;

}vectorgenerate(int left, int right)

for (int i = left; i <= right; i++) }}

return ans;

}};

leetcode不同的二叉搜尋樹

1.動態規劃 對於有序娛樂1 n構建二叉搜尋樹,我們可以遍歷,對數字i,將i作樹根,則1 i 1構成其左子樹,i 1 n構成其右子樹。設g n 長度為n的序列構成的二叉搜尋樹的個數 f i 以i為根節點的二叉搜尋樹個數 得到 g n f 1 f 2 f n 對於邊界值,即n 0或1時,分別對應空樹和...

LeetCode 不同的二叉搜尋樹 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 ...

LeetCode之不同的二叉搜尋樹

解題步驟 題目可以轉換為求以i 1 i n 為根節點的不同結構的二叉樹數量,然後相加就可以的出答案。假如我們以i為根節點,左子樹由 1,i 1 構成,右子樹由 i 1,n 構成。由於二叉搜尋樹左節點值小於根節點值,右節點值大於根節點值,並對所有子樹都成立,所以左子樹 1,i 1 與右子樹 i 1,n...