class solution
/*** 左閉右開區間
* 先找到陣列的最大值,作為根節點,然後將陣列一分為二,繼續遞迴分割
*/public treenode buildsontree(int nums, int left, int right)
if (right - left == 1)
/*** 記錄下根節點的位置
*/int index = left;
for (int i = left; i < right; i++)
}/**
* 傳入新的陣列邊界,繼續分割
*/treenode root = new treenode(nums[index]);
root.left = buildsontree(nums, left, index);
root.right = buildsontree(nums, index + 1, right);
return root;
}}/**
* 時間複雜度 o(n)
* 空間複雜度 o(n)
*/
654 最大二叉樹
給定乙個不含重複元素的整數陣列。乙個以此陣列構建的最大二叉樹定義如下 二叉樹的根是陣列中的最大元素。左子樹是通過陣列中最大值左邊部分構造出的最大二叉樹。右子樹是通過陣列中最大值右邊部分構造出的最大二叉樹。通過給定的陣列構建最大二叉樹,並且輸出這個樹的根節點。example 1 輸入 3,2,1,6,...
654 最大二叉樹
題目描述 給定乙個不含重複元素的整數陣列。乙個以此陣列構建的最大二叉樹定義如下 二叉樹的根是陣列中的最大元素。左子樹是通過陣列中最大值左邊部分構造出的最大二叉樹。右子樹是通過陣列中最大值右邊部分構造出的最大二叉樹。通過給定的陣列構建最大二叉樹,並且輸出這個樹的根節點。示例 給定的陣列的大小在 1,1...
654 最大二叉樹
給定乙個不含重複元素的整數陣列 nums 乙個以此陣列直接遞迴構建的 最大二叉樹 定義如下 二叉樹的根是陣列 nums 中的最大元素。左子樹是通過陣列中 最大值左邊部分 遞迴構造出的最大二叉樹。右子樹是通過陣列中 最大值右邊部分 遞迴構造出的最大二叉樹。返回有給定陣列 nums 構建的 最大二叉樹 ...