Leetcode 95 不同的二叉搜尋樹 II

2021-09-26 15:15:39 字數 1172 閱讀 9139

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

分析:這個題目初始看的時候,還是需要注意到生成樹的要求,二叉搜尋樹,即根節點比任何左子樹的元素大,比右子樹的小。還要注意儲存的結果vector,這其實是存了每棵樹的根節點。就有了以下思路

1對於位置為i,作為根結點,那麼generate(1,i-1)可以生成左子樹vectorleft,generate(i+1,n)生成右子樹treenode* right。

2 對於生成的,需要加兩個巢狀迴圈,就是for(auto leftnode:left) for(auto rightnode:right).分別接到以i為value的根節點。

root->left = leftnode,root->right = rightnode;

3 只需要遍歷一遍每個數(1:n)作為根節點,重複1,2操作,就能生成所有的樹了

4 邊界條件,當generate(start,end),start>right就得跳出來,但是相等的時候可以,因為乙個結點仍然可以作為乙個數。另外,注意題目是(1:n),意味著給0就不行。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution ;

}vectorgenerate(int left,int right)

for(int i=left;i<=right;i++)}}

return ans;

}};

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