給定乙個不含重複元素的整數陣列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,...