用遞迴即可
因為是二叉搜尋樹,也就是根大於左子節點,根小於右子節點,這就好辦了,對於每個可能的根節點,求出所有左右子樹的集合,雙迴圈配對
/*** definition for a binary tree node.
* public class treenode
* }*/class solution
int start=1;
int end=n;
return getans(start,end);
}public listgetans(int start,int end)//顯然,結果裡,只需要放二叉樹的根就好
if(start==end)//只有乙個點,返回這個點為根節點的樹就好
for(int i=start;i<=end;i++)//i是可能的根,所有迴圈,找的是所有的根
}return ans;}}
95 不同的二叉搜尋樹 II
二叉搜尋樹,又被稱為是二叉查詢樹 二叉排序樹,這種樹其左子樹所有節點的值均小於根節點的值,其右子樹所有節點的值均大於根節點的值,並且其左 右子樹均為二叉搜尋樹。空樹也是二叉搜尋樹。方法一 遞迴法 與這道題類似的是那道 96不同的二叉搜尋樹 在96中我們曾分析到,由於給定的節點值為1 n,是一組從小到...
95 不同的二叉搜尋樹 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 ...
95 不同的二叉搜尋樹 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 ...