mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-11 13:00:22 +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>
|
||||
|
Reference in New Issue
Block a user