95 不同的二叉搜尋樹

2021-10-03 02:11:51 字數 1222 閱讀 9643

題目:

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

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution:

def generatetrees(self, n: int) -> list[treenode]:

if n==0:

return

return self.generate(1,n)

def generate(self,start,end):

res=

if start>end:

return res

for i in range(start,end+1):

lefttree=self.generate(start,i-1)

righttree=self.generate(i+1,end)

for left in lefttree:

for right in righttree:

node=treenode(i)

node.left=left

node.right=right

return res

95 不同的二叉搜尋樹

給定乙個整數 n,求以 1 n 為節點組成的二叉搜尋樹有多少種?示例 輸入 3 輸出 5 解釋 給定 n 3,一共有 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3 使用dp n 表示1 n可以用多少顆不同的二叉搜尋樹,那麼 dp 0 1 假設空樹也是一顆樹 ...

95 不同的二叉搜尋樹 II M

label dp lnr,深拷貝,遞迴左右劃分構建樹 給定乙個整數 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 種不同結構...

95 不同的二叉搜尋樹 II

二叉搜尋樹,又被稱為是二叉查詢樹 二叉排序樹,這種樹其左子樹所有節點的值均小於根節點的值,其右子樹所有節點的值均大於根節點的值,並且其左 右子樹均為二叉搜尋樹。空樹也是二叉搜尋樹。方法一 遞迴法 與這道題類似的是那道 96不同的二叉搜尋樹 在96中我們曾分析到,由於給定的節點值為1 n,是一組從小到...