(力扣) 95 不同的二叉搜尋樹 II

2021-10-10 13:34:40 字數 456 閱讀 9477

這道題的目的是求出由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

二叉查詢樹 binary search tree 又 二叉搜尋樹,二叉排序樹 它或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。即所有的根節點大於...

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