LeetCode 不同的二叉搜尋樹 II

2021-10-02 09:00:16 字數 866 閱讀 7635

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

vector>> res(n+1,vector>(n+1));

return helper(1,n,res);

}vectorhelper(int start,int end, vector>>& res)

;if(!res[start][end].empty())

return res[start][end];

vectorss;

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

return res[start][end] = ss;

}};

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