leetcode 95 不同的二叉搜尋樹

2021-10-08 12:49:49 字數 1045 閱讀 7492

題目:給定乙個整數 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 ...