mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-11 21:10:58 +08:00
添加 0654. 最大二叉树 Swift 版本
This commit is contained in:
@ -401,6 +401,33 @@ struct TreeNode* constructMaximumBinaryTree(int* nums, int numsSize){
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Swift
|
||||||
|
```swift
|
||||||
|
func constructMaximumBinaryTree(_ nums: inout [Int]) -> TreeNode? {
|
||||||
|
return traversal(&nums, 0, nums.count)
|
||||||
|
}
|
||||||
|
|
||||||
|
func traversal(_ nums: inout [Int], _ left: Int, _ right: Int) -> TreeNode? {
|
||||||
|
if left >= right {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var maxValueIndex = left
|
||||||
|
for i in (left + 1)..<right {
|
||||||
|
if nums[i] > nums[maxValueIndex] {
|
||||||
|
maxValueIndex = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let root = TreeNode(nums[maxValueIndex])
|
||||||
|
|
||||||
|
root.left = traversal(&nums, left, maxValueIndex)
|
||||||
|
root.right = traversal(&nums, maxValueIndex + 1, right)
|
||||||
|
return root
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
Reference in New Issue
Block a user