題目描述:
給定乙個整數 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]
]上一題(leetcode94.不同的二叉搜尋樹)是只用算出能生成的二叉樹的個數而並不需要知道具體二叉樹長什麼樣,而這道題是基於上一題的公升級版,需要具體的求出不同的二叉樹。
演算法一:遞迴
求出所有樹依然要同上一題一樣,分別將 1 ~ n 的所有數作為根節點。
遞迴這個演算法可以直接通過看**理解具體解題思路,也最好理解,所以直接上**吧。
public listgeneratetrees(intn)
return gettrees(1, n);
}private listgettrees(int start, int
end)
//start=end說明只有乙個節點,將這個節點作為一棵樹加入
if (start ==end)
//從i=start到end作為根節點
for (int i = start; i <= end; i++) }}
return
trees;
}
(^_^後續方法待更新...)
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...