2021 03 13 654 最大二叉樹

2021-10-22 18:57:46 字數 2004 閱讀 4191

給定乙個不含重複元素的整數陣列nums。乙個以此陣列直接遞迴構建的最大二叉樹定義如下:

二叉樹的根是陣列nums中的最大元素。

左子樹是通過陣列中最大值左邊部分遞迴構造出的最大二叉樹。

右子樹是通過陣列中最大值右邊部分遞迴構造出的最大二叉樹。

返回有給定陣列nums構建的最大二叉樹

示例 1:

輸入:nums =[3

,2,1

,6,0

,5]輸出:[6,

3,5,

null,2

,0,null

,null,1

]解釋:遞迴呼叫如下所示:-[

3,2,

1,6,

0,5] 中的最大值是 6 ,左邊部分是 [3,

2,1] ,右邊部分是 [0,

5] 。

-[3,2,1

] 中的最大值是 3 ,左邊部分是 [

] ,右邊部分是 [2,

1] 。

- 空陣列,無子節點。

-[2,1

] 中的最大值是 2 ,左邊部分是 [

] ,右邊部分是 [

1] 。

- 空陣列,無子節點。

- 只有乙個元素,所以子節點是乙個值為 1 的節點。

-[0,5

] 中的最大值是 5 ,左邊部分是 [

0] ,右邊部分是 [

] 。 - 只有乙個元素,所以子節點是乙個值為 0 的節點。

- 空陣列,無子節點。

示例 2:

輸入:nums =[3

,2,1

]輸出:[3,

null,2

,null,1

]

這道題目我們直接使用遞迴來實現:

複雜度分析:

最大二叉樹

題目大意 總是按照當前陣列或者子陣列中的元素值的最大值作為根節點,依次建立一顆二叉樹。輸入 nums 3 2,1 6,0 5 輸出 6,3,5,null,2,0,null,null,1 解釋 遞迴呼叫如下所示 3,2,1,6,0,5 中的最大值是 6 左邊部分是 3,2,1 右邊部分是 0,5 3,...

最大二叉搜尋子樹

有一棵二叉樹,其中所有節點的值都不一樣,找到含有節點最多 的搜尋二叉子樹,並返回這棵子樹的頭節點.給定二叉樹的頭結點root,請返回所求的頭結點,若出現多個節點最多的子樹,返回頭結點權值最大的。struct treenode class maxsubtree if root null return ...

654 最大二叉樹

給定乙個不含重複元素的整數陣列。乙個以此陣列構建的最大二叉樹定義如下 二叉樹的根是陣列中的最大元素。左子樹是通過陣列中最大值左邊部分構造出的最大二叉樹。右子樹是通過陣列中最大值右邊部分構造出的最大二叉樹。通過給定的陣列構建最大二叉樹,並且輸出這個樹的根節點。example 1 輸入 3,2,1,6,...