每日刷題 不同的二叉搜尋樹II

2021-09-27 13:20:20 字數 966 閱讀 1659

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

方法一:列舉所有的排列,對每個排列形成相對應的二叉搜尋樹,之後去重。

但是,去重過程繁瑣且耗時間。因此該方法並不可行。

方法二:利用 bst 的性質,如下圖,對於某乙個數字 i, 其左側部分為它的左子樹,右側部分為它的右子樹。

每日刷題 恢復二叉搜尋樹

二叉搜尋樹中的兩個節點被錯誤地交換。請在不改變其結構的情況下,恢復這棵樹。示例 例 1 輸入 1,3,null,null,2 1 3 2輸出 3,1,null,null,2 3 1 2例 2 輸入 3,1,4,null,null,2 3 1 4 2輸出 2,1,4,null,null,3 2 1 4...

不同的二叉搜尋樹 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 種不同結構的二叉搜尋樹 以上的輸出對應以下 5 種不...

LintCode刷題 不同的二叉查詢樹I II

不同的二叉查詢樹i 題目內容 給出 n,問由 1.n 為節點組成的不同的二叉查詢樹有多少種?樣例 給出n 3,有5種不同形態的二叉查詢樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3演算法分析 先來看一下二叉查詢樹的特點,當選定乙個節點i作為中間節點時 位於該節點左子樹中的所有節點均小...