題目:給定乙個整數 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
由於輸入是乙個整數,因此可以看做乙個預設的有序陣列。構造乙個遞迴的輔助函式,從start到end逐個生成左右子樹,判斷左右的依據隱含在了輔助函式的傳參之中,這樣只要給根結點的左右子樹進行排列組合,就能得到所有的二叉搜尋樹。
這道題主要要想清楚如何進行遞迴,以及遞迴的退出條件(start大於end的時候,說明當前的root結點子樹已經全部遍歷結束)
/**
* definition for a binary tree node.
* public class treenode
* treenode(int val)
* treenode(int val, treenode left, treenode right)
* }*/class solution
public listgeneratetrees(int start, int end)
for (int i=start; i<=end; i++) }}
return alltrees;
}}
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 ...
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...
LeetCode 95 不同的二叉搜尋樹 II
1.題目 2.解答 以假設序列為 其中要特別注意,如果某乙個子樹向量為空,我們需要在向量中新增乙個空指標,保證迴圈進行一次,這時候只需要遍歷另乙個子樹即可。definition for a binary tree node.struct treenode class solution vector ...